格式化MySQL查询:您的SQL语法有错误;检查与MySQL服务器版本对应的手册
在阅读了许多类似的帖子后,我在这里发布了文章,但这并不能解决我的问题,因此我需要MySQL专家帮助我确定此查询的错误: 查询如下所示:格式化MySQL查询:您的SQL语法有错误;检查与MySQL服务器版本对应的手册,mysql,Mysql,在阅读了许多类似的帖子后,我在这里发布了文章,但这并不能解决我的问题,因此我需要MySQL专家帮助我确定此查询的错误: 查询如下所示: SELECT DISTINCT(p.ID), p.*, pm.*, t.*, tt.*, tr.* FROM wp_posts p, wp_postmeta pm, wp_terms as t, wp_term_taxonomy as tt, wp_term_relationships as tr 'WHERE p.ID = pm.post_id AND
SELECT DISTINCT(p.ID), p.*, pm.*, t.*, tt.*, tr.*
FROM wp_posts p, wp_postmeta pm, wp_terms as t, wp_term_taxonomy as tt, wp_term_relationships as tr
'WHERE p.ID = pm.post_id
AND t.term_id = tt.term_id
AND tt.taxonomy = wpsc_product_category
AND tt.term_taxonomy_id = tr.term_taxonomy_id
AND tr.object_id = p.ID
AND p.post_type = wpsc-product
AND pm.meta_key != _wpsc_price
AND (p.post_title LIKE '%'\"some string to search\"'%'
OR p.post_content LIKE '%'\"some string to search\"'%'
OR pm.meta_value = '\"some string to search\"'
OR t.name LIKE '%'\"some string to search\"'%')
GROUP BY p.ID ORDER By p.ID '
我不知道查询格式中有什么错误导致以下错误:
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 ''WHERE p.ID = pm.post_id AND t.term_id = tt.term_id AND tt.taxonomy = wpsc_produ' at line 1
在我的查询中,我需要集成字符串,现在更改为PDO已经太晚了。我怎样才能纠正这个错误
PS:我在本地服务器上运行,所以php info向我显示了有关MySQL服务器的信息,我猜它的版本是:
Client API version 5.5.29
WHERE子句周围不需要引号。根据错误消息,WHERE子句前面有一个额外的单引号
作为旁注,
DISTINCT
关键字更有可能是无用的,因为只有当所有列中的所有值在两行上都相等时,它才会起作用,否则即使它们具有相同的值,该行也是唯一的。您应该在整个查询中始终保持相同的约定,以使其更具可读性,并且不太可能出错
这不会影响结果,但如果您使用别名“wp_posts p”或“wp_posts AS p”,则它们是等效的,但您可以在该查询中混合使用。我已经为您制定了相同的约定,并修复了下面的问题
SELECT DISTINCT(p.ID), p.*, pm.*, t.*, tt.*, tr.*
FROM wp_posts p, wp_postmeta pm, wp_terms t, wp_term_taxonomy tt, wp_term_relationships tr
WHERE p.ID = pm.post_id
AND t.term_id = tt.term_id
AND tt.taxonomy = wpsc_product_category
AND tt.term_taxonomy_id = tr.term_taxonomy_id
AND tr.object_id = p.ID
AND p.post_type = wpsc-product
AND pm.meta_key != _wpsc_price
AND (p.post_title LIKE "%some string to search%"
OR p.post_content LIKE "%some string to search%"
OR pm.meta_value = "some string to search"
OR t.name LIKE "%some string to search%")
GROUP BY p.ID ORDER By p.ID