Php 值为null时的查询问题
我正在使用php查询一个数据库,从当前10个单独的表中查找一条信息。使用多个查询的问题是,访问使用所有这些信息的网页时速度非常慢。当其中一个值由于WHERE而不存在时,我似乎无法得到我想要的所有信息。。。声明 例如,我的单个查询都采用以下格式:Php 值为null时的查询问题,php,mysql,sql,Php,Mysql,Sql,我正在使用php查询一个数据库,从当前10个单独的表中查找一条信息。使用多个查询的问题是,访问使用所有这些信息的网页时速度非常慢。当其中一个值由于WHERE而不存在时,我似乎无法得到我想要的所有信息。。。声明 例如,我的单个查询都采用以下格式: SELECT eval_id FROM eval WHERE user_id = $id; 我的多表查询如下所示: SELECT eval_id,list_id,tab_id FROM eval,list,tab WHERE eval.user_id
SELECT eval_id FROM eval WHERE user_id = $id;
我的多表查询如下所示:
SELECT eval_id,list_id,tab_id
FROM eval,list,tab
WHERE eval.user_id = $id
AND list.user_id = $id
AND tab.user_id = $id;
我试图将这些查询组合成一个大型查询,但当表中不存在其中一个查询的用户id时,WHERE中的比较。。。语句搞乱了整个查询。有人知道检索所有这些信息的最佳方法吗
假设这些表是eval、list和tab,它们的id分别是*\u id。即使eval不包含一个user_id=$id的结果,查询该结果的最佳方法是什么
SELECT eval.eval_id, list.list_id
FROM user
JOIN eval ON eval.user_id = user.id
JOIN list ON list.user_id = user.id
WHERE user.id = $id
希望它能帮助你
更新:只需考虑其他解决方案:
SELECT eval_id as id, "eval" as table
FROM eval WHERE eval.user_id = $id
UNION
SELECT list_id as id, "list" as table
FROM list WHERE list.user_id = $id
您可以在WHERE语句中使用以下任意一项进行查询:
AND TABLE.TABLE_id <> null //null
AND TABLE.TABLE_id <> 'null' //String null
AND TABLE.TABLE_id <> '' //empty String
检查数据库以查看id返回的空值类型,并选择与之匹配的加法
此外,虽然左连接在查询中可能更美观,但它们并不总是更快,因此请确保在使用前对其进行测试。和NULL eval.user\u id?我正在寻找非常动态的内容。如果eval_id确实产生了一个结果,我希望它给我这个值。在这种情况下,这会产生结果吗?不会。如果usre_id返回null,它将忽略它。我当前有此设置,并且执行10个查询需要很长时间。可以将多个查询合并到一个查询中吗?例如,eval.user\u id=$id或eval.user\u id null和list.user\u id=$id或list.user\u id null是,WHERE语句可以有多个检查