格式化MySQL查询:您的SQL语法有错误;检查与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

在阅读了许多类似的帖子后,我在这里发布了文章,但这并不能解决我的问题,因此我需要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 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