好的,所以这个很奇怪,我想我的SQL查询一定有问题,但我没有看到它有什么问题。发生的事情是我有一个脚本,我在php脚本中运行,检索用户已注册的所有类别以及有多少其他人注册了同一类别。当我在php页面中运行查询时,它非常慢,但确实返回结果。我想看看发生了什么,所以我去phpmyadmin运行相同的脚本,它返回结果的计数非常快,但然后给我以下错误,通常会显示结果:
#1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near '' at line 1
以下是查询:
SELECT t1.category_id, t3.description AS 'Category',
t1.list_type_id, t2.name, t1.status_id, t2.user_id,
t2.email, UNIX_TIMESTAMP( t1.record_date ) AS 'RecordDate',
(
SELECT COUNT( category_id )
FROM t1_sub
WHERE t1_sub = t1.job_ctg_id AND
t1_sub.list_type_id = t1.list_type_id AND
t1_sub.status_id =44
) AS 'MatchingListings'
FROM t1
INNER JOIN t2 ON t2.id_rfp_vendor_data = t1.user_id
INNER JOIN t3 ON t3.type_lookup_id = t1.job_ctg_id
WHERE t1.status_id =43
我不知所措。我的问题的原因实际上是两个方面:
谢谢!
答案 0 :(得分:1)
PHPMyAdmin冒充略微重写您的查询(例如,添加LIMIT 0,30子句仅显示前30行)。
您是否可以启用查询日志并查看服务器上实际执行的查询?
如果没有,请尝试从查询中删除元素,直到它确实有效。向我们展示查询。或者显示一些表定义?
答案 1 :(得分:0)
您的任何表格或列名称中是否有空格?如果是这样,请将它们包含在反引号中:
`table name`
答案 2 :(得分:0)
你应该做的是删除phpmyadmin并承诺永远不要再下载它。
然后启动命令行mysql提示符,并尝试相同的查询。这将告诉你查询是否真的很糟糕,或者phpmyadmin是否只是为了被误导作者的变态乐趣而诋毁它。