我在MySQL数据库中有一个表。在该表中有一个名为“selection”的文本字段,其中包含编号值,由管道字符分隔(例如:44 | 5 | 23 | 546 | .....)。我还有一个php数组:$ values = array(63,35,7,5);
我需要将'selection'字段称为选项数组(以'|'分隔),并仅选择包含$ values数组中至少一个数字的行。
我希望我能够准确地解释我的问题,因为我的英语很差......谢谢。
答案 0 :(得分:2)
如果要获取$values
数组中至少包含一个数字的行,则SQL如下所示:
$values = array(63,35,7,5);
foreach ($values as $value) {
$sql = "select * from tablename where selection like '%{$value}|%' or '%|{$value}%'";
}
答案 1 :(得分:0)
如果数组中的值已经按照适当的搜索顺序排列,您可以使用以下内容构建查询:
$selection_searched = implode('|', $values);
$query = "SELECT * FROM your_table WHERE selection = '$selection_searched'";
请注意,您可能希望验证数组$ values fisrt,检查它是否为空等。请查看以下手册:http://php.net/implode