gpt4 book ai didi

php - MySQL 和 PHP : Multiple Keyword Search

转载 作者:IT老高 更新时间:2023-10-29 00:13:37 25 4
gpt4 key购买 nike

我有一个包含逗号分隔关键字的字符串。例如:

$keywords = 'keyword1, keyword2, keyword3';

我的表架构,名为 tbl_address 是这样的(简化):

id        INT(11)        PRIMARY KEY, AUTO INCREMENT
address VARCHAR(250) NOT NULL

假设我必须在 PHP 中使用 MySQLi(而不是 PDO)。

这是我目前的做法:

$result = array();
$keyword_tokens = explode(',', $keywords);
foreach($keyword_tokens as $keyword) {
$keyword = mysqli_real_escape_string(trim($keyword));
$sql = "SELECT * FROM tbl_address WHERE address LIKE'%$keyword%'";
// query and collect the result to $result
// before inserting to $result, check if the id exists in $result.
// if yes, skip.
}
return $result;

这种方法可行,但性能低下。如果有很多关键字,它会进行很多查询。

我的问题是,是否有更好的方法来实现相同的目标?即,返回地址包含任何关键字的所有记录的最简单方法是什么?

最佳答案

一个简单的 REGEXP 可能就是您想要的。您必须自己检查它的效率。

SELECT * FROM tbl_address WHERE field REGEXP 'keyword1|keyword2|keyword3';

关于php - MySQL 和 PHP : Multiple Keyword Search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16034367/

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