在 MySQL 中查找查询文本中包含的行值
MySQL 的 LIKE 运算符擅长查找包含指定查询文本的行。考虑这个例子:
SELECT name FROM user WHERE name LIKE "%john%"
像 John Smith 和 Peter Johnson 这样的行将被返回。
但是如果我们寻找相反的行,其值存在于查询文本中呢?例如,提供“John Smith 和 Peter Johnson 是最好的朋友”并从该字符串中存在的表中查找所有名字。我们怎样才能做到这一点?
反向 LIKE 操作
要执行此反向 LIKE 操作,利用 CONCAT() 函数是关键:
SELECT name FROM user WHERE 'John Smith and Peter Johnson are best friends' LIKE CONCAT('%', name, '%')
CONCAT() 函数连接字符串,在本例中,将每一行的名称用百分号(“%”)括起来。这允许 LIKE 运算符检查整个查询文本是否包含每个名称。
例如,如果用户表包含“John”和“Peter”名称,则查询将返回:
| name | | --- | | John | | Peter |
该技术有效地识别与特定文本匹配的行,颠覆了传统的 LIKE 行为。
以上是如何查找其值包含在给定文本字符串中的 MySQL 行?的详细内容。更多信息请关注PHP中文网其他相关文章!