这些线条效果很好并且给我正确的输出:
$query = "SELECT * FROM `scores` WHERE id IN ('tim', 'scrat')";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
但是,如果我想将('tim', 'scrat')
替换为我首先使用我从另一列获取的信息创建的变量:
$query = "SELECT friendsids FROM `scores` WHERE id='tom'";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
$row = mysql_fetch_array($result);
$friendsids = ($row[0]);
echo ($friendsids); // this correctly logs: tim,scrat
// now the same as above, but using $friendsids:
$query = "SELECT * FROM `scores` WHERE id IN ($friendsids)";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
我一直收到错误
Query failed: Unknown column 'tim' in 'where clause'
所以似乎WHERE操作确实将$ friendsids放入碎片中,但不知何故无法正确识别它们?
不确定它是否相关,我的表格如下:
CREATE TABLE `scores` (
`id` VARCHAR(20) PRIMARY KEY,
`score` INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,
`friendsids` VARCHAR(1000)
)
TYPE=MyISAM;
答案 0 :(得分:0)
您可以简单地使用由您的第一个查询构成的查询,而不是两次点击数据库并运行所描述的问题:
SELECT
*
FROM
`scores`
WHERE
id IN (
SELECT
friendsids
FROM
`scores`
WHERE
id='tom')
否则你需要在第一个结果中添加引号,但我认为这可以节省时间和精力。