SELECT stuff REGEXP 'itunes' as is_itunes;
在这个MySQL查询中,如果“stuff”中包含单词“itunes”,它会将其标记为itunes。
但是,我想说“开头”。如何检查“开头”而不是文本中的任何位置?
SELECT ... WHERE stuff LIKE 'itunes%';
这里%
作为通配符,所以这将匹配行stuff
字段等于任何itunes
,itunesfoo
,itunes1
,...
更多信息:W3Schools的SQL LIKE Operator。
添加插入符号,它表示字符串的开头:
SELECT stuff REGEXP '^itunes' as is_itunes;
但是,Marc建议的LIKE 'itunes%'
应该快得多,特别是如果你的索引设置正确的话。
对于索引字段,最好这样做:
select ... where stuff >='itunes' AND stuff < 'itunet'
这不会创建完整的表扫描,并使用索引。
SELECT ... WHERE LEFT(stuff, 6) = 'itunes';
SELECT ... WHERE stuff REGEXP '[[:<:]]itunes';