如何在MySQL中查询包含给定文本的字段?

时间:2011-11-09 19:17:57

标签: mysql sql database

SELECT stuff REGEXP 'itunes' as is_itunes;

在这个MySQL查询中,如果“stuff”中包含单词“itunes”,它会将其标记为itunes。

但是,我想说“开头”。如何检查“开头”而不是文本中的任何位置?

5 个答案:

答案 0 :(得分:82)

SELECT ... WHERE stuff LIKE 'itunes%';

此处%用作通配符,因此这会匹配stuff字段等于itunesitunesfooitunes1中任何一个的行, ...

更多信息: W3Schools的<{3}}

答案 1 :(得分:7)

添加插入符号,它表示字符串的开头:

SELECT stuff REGEXP '^itunes' as is_itunes;

但是,Marc建议的LIKE 'itunes%'应该快得多,特别是如果你的索引设置正确的话。

答案 2 :(得分:5)

对于索引字段,最好这样做:

select ... where stuff >='itunes' AND stuff < 'itunet'

这不会创建全表扫描,并使用索引。

答案 3 :(得分:3)

SELECT ... WHERE LEFT(stuff, 6) = 'itunes';

答案 4 :(得分:0)

SELECT ... WHERE stuff REGEXP '[[:<:]]itunes';