【发布时间】:2012-03-07 08:39:00
【问题描述】:
我在数据库上运行选择查询时遇到了一点问题。一些数据以逗号分隔值列表的形式保存,例如:
Table: example_tbl
| Id | People | Children |
| 1 | 1,2,3 | 8,10,3 |
| 2 | 7,6,12 | 18,19,2 |
还有一个我正在尝试运行的示例:
<?php
include 'class.php';
$selection = 1;
$db = new DbClass;
$tbl_name = 'example_tbl';
$sql = "SELECT * FROM $tbl_name WHERE ".$selection." IN People";
$result = $db->query($sql);
$print_r($result);
?>
上面的脚本应该在 People 列中找到“1”后返回第 1 行,但显然我把它搞砸了。
我遇到的问题是我认为我的 IN 语句是向后的,即我认为如果 $selection 是一个逗号分隔(内爆)列表,那么我认为这种方法将选择值,而不是我尝试的方式用它。
我不知道我从上面的 db 类发送和接收的内容是否太重要,但如果您想知道,它只是一个简单的脚本,运行所有相关位并返回结果数组。目前它什么也没返回,因为它没有找到匹配项
提前感谢您告诉我的任何事情。
干杯 -戴夫
【问题讨论】: