gpt4 book ai didi

php - SELECT * FROM 表,其中列如 '%variable%' - 任意顺序的多个单词

转载 作者:行者123 更新时间:2023-11-29 08:06:12 24 4
gpt4 key购买 nike

我使用 php 为我的同事编写了一个快速搜索页面,它在其中查询数据库。他们的字符串被命名为 $wordvariable (他们还选择日期等,但这在这里并不重要),这是我到目前为止所做的:

$wordvariable = explode(" ", $wordvariable);
$wordvariable = implode("%", $wordvariable);
$Query = mysql_query(
"SELECT * FROM table
WHERE (column1 like '%$wordvariable%' or column2 like '%$wordvariable%')
AND logdatex between $TimeEarlier and $TimeNow"
) or die(mysql_error());

但是,这只会按照他们输入的顺序搜索他们输入的单词,例如搜索“堆栈溢出”会找到“堆栈这是溢出”,但不会找到“溢出堆栈”。我希望我的措辞正确,任何帮助将不胜感激

最佳答案

像这样的东西:

$where = "WHERE column1 LIKE '%" . implode("%' OR column1 LIKE '%", explode(" ", $wordvariable)) . "%'";

简而言之,只需在空格上分解$wordvariable,然后在您想要的短语上分解这些单独的单词即可。

更详细,包括column2:

$words  = explode(" ", $wordvariable);
$list1 = implode("%' OR column1 LIKE '%", $words);
$list2 = implode("%' OR column2 LIKE '%", $words);

echo $where = "WHERE (column1 LIKE '%$list1%') OR (column2 LIKE '%$list2%')";

关于php - SELECT * FROM 表,其中列如 '%variable%' - 任意顺序的多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691466/

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