Jen*_*ohn 3 php mysql where-clause sql-like
我有一个查询.是否有任何内置函数或与MySQL相关的任何其他方法,它将返回包含数据库表字段中的EXACT字的行?我知道使用MySQL LIKE运算符,您可以在列中搜索指定的模式,该模式将字符串值与包含通配符的模式字符串相匹配.但是使用MySQL LIKE子句,它也将返回子字符串条目.
例如.
假设3列值如下:
1. "Take another shot of courage"
2. "The End of This age is Not Yet"
3. "Employers can obtain this wage rate by submitting a request"
Run Code Online (Sandbox Code Playgroud)
我想要检索列值包含确切单词"age"的所有行
如果我们准备这样的查询
SELECT * FROM sometable WHERE somefield LIKE '%age%'
Run Code Online (Sandbox Code Playgroud)
它将返回所有三行.但我的目的只是获得第二排.我们如何实现这一目标?提前致谢.
干杯,
JENSon.
使用此查询
SELECT * FROM sometable WHERE somefield LIKE '% age %'
OR somefield LIKE 'age %' OR somefield LIKE '% age'
Run Code Online (Sandbox Code Playgroud)
您可以使用MySQL的正则表达式引擎并匹配单词边界字符[[:<:]]和[[:>:]]
这将匹配age而不是courage或wage或aged.它还将匹配-age-文本age被非单词字符包围的年龄或任何其他行.这意味着它将匹配age字符串的开头和结尾.
在我看来,阅读比有三个条件要简单一点.如果返回的匹配-age-是可接受的,那么你可能会考虑这个.
我还没有测试过这个查询的性能或可移植性,所以你可能也想考虑一下.
SELECT * FROM sometable WHERE somefield RLIKE '[[:<:]]age[[:>:]]';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6841 次 |
| 最近记录: |