在mysql选择查询中将文本字段转换为数组

时间:2012-01-11 16:59:37

标签: php mysql arrays select

我在MySQL数据库中有一个表。在该表中有一个名为“selection”的文本字段,其中包含编号值,由管道字符分隔(例如:44 | 5 | 23 | 546 | .....)。我还有一个php数组:$ values = array(63,35,7,5);

我需要将'selection'字段称为选项数组(以'|'分隔),并仅选择包含$ values数组中至少一个数字的行。

我希望我能够准确地解释我的问题,因为我的英语很差......谢谢。

2 个答案:

答案 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