gpt4 book ai didi

php - Mysql LIKE子句和字段中的分隔词

转载 作者:可可西里 更新时间:2023-11-01 07:18:32 25 4
gpt4 key购买 nike

我目前使用类似下面的 mysql 语句来搜索帖子标题。

从标题为 %search_term% 的表中选择 *

但问题是,如果标题是这样的:Acme launchs 5 pound burger 并且用户搜索 Acme,它将返回一个结果。但是,如果用户搜索 Acme burgerAcme 5 pound,它将不会返回任何内容。

有没有办法让它在用户搜索多个词时返回结果? LIKE 在这里使用是正确的还是有其他可以使用的东西?

最佳答案

您可以使用 REGEXP 来匹配搜索字符串中的任何单词:

select *
from tbl
where
title REGEXP CONCAT('[[:<:]](', REPLACE('Acme burger', ' ', '|'), ')[[:>:]]')

请注意,这不会非常有效。见 fiddle here .

如果您需要匹配字符串中的每个单词,您可以使用如下查询:

select *
from tbl
where
title REGEXP CONCAT('[[:<:]]', REPLACE('Acme burger', ' ', '[[:>:]].*[[:<:]]'), '[[:>:]]')

fiddle here .但是单词的顺序必须正确(例如,'Acme burger' 会匹配,'burger Acme' 不会)。有一个 REGEXP 可以以任何顺序匹配每个单词,但 MySql 不支持它,除非您安装支持 Perl regexp 的 UDF。

关于php - Mysql LIKE子句和字段中的分隔词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859966/

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