如何查询包含MySQL中给定文本的字段?
SELECT stuff REGEXP 'itunes' as is_itunes;
在这个MySQL查询中,如果“stuff”里面有“itunes”这个词,就会把它标记为itunes。
但是,我想说“开始”。 我怎样才能检查“开始”,而不是在文本的任何地方?
SELECT ... WHERE stuff LIKE 'itunes%';
添加脱字符号,它代表string的开头:
SELECT stuff REGEXP '^itunes' as is_itunes;
但是,Marc所build议LIKE 'itunes%'
应该快很多,特别是如果你的索引设置正确的话。
对于索引字段,要做的事情要好得多:
select ... where stuff >='itunes' AND stuff < 'itunet'
这不会创build一个完整的表扫描,并使用索引。
SELECT ... WHERE LEFT(stuff, 6) = 'itunes';
SELECT … WHERE stuff REGEXP'[[:<:]] itunes';