gpt4 book ai didi

mysql - 查询精确词搜索

转载 作者:行者123 更新时间:2023-11-29 13:33:17 26 4
gpt4 key购买 nike

希望你一切都好

我很难编写查询

这是我的问题的解释

我有一个名为“jreviews_content”的数据库表,其中有一个名为“jr_produits”的字段

在“jr_produits”中,数据的格式是*ryan-decosta*tom-gosling*,所以我想要一个基于精确单词的搜索查询,即如果用户输入“rya”,mysql不应返回任何内容但如果用户输入 ryan 那么它应该返回该行,同样如果用户输入“gos”,mysql 不应该返回任何内容但如果用户输入 gosling 那么它应该返回 ryan 和 gosling 是确切单词的行

我正在写的查询是

SELECT *
FROM `jreviews_content`
WHERE jr_produits LIKE '%*ryan-%' or jr_produits LIKE '%-ryan*%'
or jr_produits LIKE '%*ryan*%' or jr_produits LIKE '%-ryan-%';

我希望以其他更有效的方式完成此操作(通过正则表达式或任何其他方法)

SELECT * FROM `jreviews_content` WHERE jr_produits REGEXP '^[*-]ryan[*-]$'

它没有获取任何东西

也没有

SELECT * FROM `jreviews_content` WHERE jr_produits like '%[*-]ryan[*-]%'

请提出建议

最佳答案

尝试 MySQL 正则表达式单词边界标记。它们被记录在大约一半的位置 this page :

SELECT *
FROM jreviews_content
WHERE jr_produits REGEXP '[[:<:]]ryan[[:>:]]'

请注意,我今天没有 MySQL 访问权限,因此尚未测试。

还要注意@user1032531所说的。具有诸如 *ryan-decosta*tom-gosling* 之类的值的记录几乎总是意味着“糟糕的设计”。

关于mysql - 查询精确词搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com