gpt4 book ai didi

php - 如何在mysql语句中使用LIKE和通配符

转载 作者:行者123 更新时间:2023-11-29 12:59:58 26 4
gpt4 key购买 nike

我对此进行了研究,但找不到针对我的具体问题的解决方案。

我有一列包含特定格式的数据。以下是一些示例:

1
6
14
1;6;14;16
etc...

我需要一个 mysql 语句,例如它将选择出现 16 的所有列。

我已经尝试过此操作,但它还选择出现 1 和 6 的列:

"SELECT * FROM tbl WHERE kategorien LIKE '%".$_GET['katid']."%' AND status = 1 ORDER BY pos ASC"

预先感谢您的帮助!

最佳答案

您可以尝试创建这样的辅助函数:

// Helper function
function getLike($str, $deliminator = ';', $field = 'kategorien') {
if (false !== strpos($str, $deliminator)) {
$strParts = explode($deliminator, $str);
return "($field LIKE '%". implode("%' OR $field LIKE '%", $strParts) . "%')";
} else {
return "$field LIKE '%$str%'";
}
}

// Debug
var_dump(getLike('1;6;14;16'));

输出:

string '(kategorien LIKE '%1%' OR kategorien LIKE '%6%' OR kategorien LIKE '%14%' OR kategorien LIKE '%16%')' (length=100)

在您的查询中,您可以像这样使用它:

"SELECT * FROM tbl WHERE ". getLike($_GET['katid']) ." AND status = 1 ORDER BY pos ASC"

关于php - 如何在mysql语句中使用LIKE和通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23490693/

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