问题1:
MySQL 表
编号 | 数组
1 | 1,2,3
2 | 2
3 | 2,3
4 | 4,5,6
$_GET['id'] = 2;
$a = mysql_query("SELECT * FROM `table` WHERE `array` ??? '$_GET[id]'");
在这一步中,我想遍历整个数组,看看它是否与 $_GET['id'] 匹配,所以它应该输出:
编号:1,2,3
问题2:
MySQL 表
编号 | 数组
1 | 4,5,6
2 | 3,4,7
$_GET['id'] = 4;
$a = mysql_query("SELECT * FROM `table` WHERE `array` ??? '$_GET[id]'");
在这一步中,我只想匹配数组中的第一个元素,所以它应该输出:
编号:4
我只能考虑使用 PHP 来执行此操作,但如果可能的话,我宁愿在 MySQL 查询中执行所有这些操作。
$a = mysql_query("SELECT * FROM `table`");
while($b = mysql_fetch_assoc($a))
{
$elements = explode(',', $b['array']);
foreach($elements as $element)
{
if($element == $_GET['id'])
{
echo $b['id'].'<br />';
}
}
}
或者
$a = mysql_query("SELECT * FROM `table`");
while($b = mysql_fetch_assoc($a))
{
$array = $b['array'];
if(in_array($_GET['id'], $array))
{
echo $b['id'].'<br />';
}
}
那看起来很糟糕。