Pla*_*Pro 1 mysql select sql-like
我有这样的查询:
SELECT * FROM mytable where description like %STRING%
Run Code Online (Sandbox Code Playgroud)
问题是:当我搜索JAVA它时,甚至还会返回带有的记录JAVAscript。
但是,JAVA!= JavaScript,对吗?我该如何解决?
MySQL的LIKE运算符实际上并不适合检测字符串中的单个单词。但是REGEXP支持正则表达式的可以处理此问题。考虑以下查询:
SELECT * FROM mytable WHERE description REGEXP '[[:<:]]Java[[:>:]]';
Run Code Online (Sandbox Code Playgroud)
这对应于匹配模式\bJava\b,即单词Java本身。
编辑:
如果您尝试使用Laravel执行此查询,则whereRaw应该派上用场:
$results = DB::table('mytable')
->whereRaw('description REGEXP ?', ['[[:<:]]Java[[:>:]]'])
->get();
Run Code Online (Sandbox Code Playgroud)