gpt4 book ai didi

php - field1 + field2 + field3 像 "%my_own_string%"在哪里?

转载 作者:太空宇宙 更新时间:2023-11-03 10:23:57 26 4
gpt4 key购买 nike

我有一个字符串,例如 Elton 1999,以及一个包含 4 个字段的 MySql 表:

table(id, name, surname, year)

我必须检查,将这些字段连接为“单个字段”,它是否包含我的字符串中的所有单词。

我的意思是:

1 Elton John 1999 -> must return the record2 Elton Peter 1999 -> must return the record3 Paris Elton 1999 -> must return the record4 Elto John 1999 -> must not return the record5 Elton Pierre 2000 -> must not return the record

我可以直接用 MySql 来做,还是我需要先获取所有记录然后在服务器端解析它们? (在我的例子中,在 PHP 上)

附言如果我的字符串是 1999 Elton,则必须以相同的结果开头,所以我的单词顺序无关紧要...

最佳答案

SELECT * FROM myTbl WHERE CONCAT(name, surname, year) LIKE '%ELTON%1999'

SELECT * FROM myTbl WHERE CONCAT_WS(' ', name, surname, year) LIKE '%ELTON%1999'

在每个字段之间添加一个空格。感谢神奇的兔子。

更新:好吧,如果您想在任何列上搜索可能的匹配项,其中包含以任何顺序排列的值字符串,那么您可以按空格分解字符串并单独搜索每个单词。看看这是否有效

$query = "SELECT * FROM myTbl";
if(!empty($searchString)){
$query .= " WHERE ";
$arr = explode(' ', $searchString);
foreach($arr as $word)
$fields[] = "CONCAT_WS(' ', name, surname, year) LIKE %$word%";
$query .= implode(" AND ", $fields);
}

PS - 我最近从@yahyaE 那里学到了这种查询构建技术 here :)

关于php - field1 + field2 + field3 像 "%my_own_string%"在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023461/

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