如何查询包含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';

  • DbContext和DataContext是一样的吗?
  • 在数据库中存储密码的首选方法
  • 保持密码可configuration的最佳方式是什么?不要让读者随便使用这些密码?
  • 用另一个数据更新一个表
  • 数据库中电子邮件地址的最佳长度是多less?
  • PHPExcel和文本包装
  • PDO mysql:如何知道插入是否成功
  • Django中唯一的BooleanField值?
  • Spring Security:数据库和applicationContext中的密码编码
  • ON 是什么意思?
  • 在SQL Server中更改列大小