MySQL确切的单词存在检查表字段

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.

Yog*_*har 6

使用此查询

SELECT * FROM sometable WHERE somefield LIKE '% age %' 
OR somefield LIKE 'age %' OR somefield LIKE '% age'
Run Code Online (Sandbox Code Playgroud)


jcb*_*lkr 5

您可以使用MySQL的正则表达式引擎并匹配单词边界字符[[:<:]][[:>:]]

这将匹配age而不是couragewageaged.它还将匹配-age-文本age非单词字符包围的年龄或任何其他行.这意味着它将匹配age字符串的开头和结尾.

在我看来,阅读比有三个条件要简单一点.如果返回的匹配-age-是可接受的,那么你可能会考虑这个.

我还没有测试过这个查询的性能或可移植性,所以你可能也想考虑一下.

SELECT * FROM sometable WHERE somefield RLIKE '[[:<:]]age[[:>:]]';
Run Code Online (Sandbox Code Playgroud)