Mysql 如何将innerjoin查询与2个LCASE+1个查询中的替换组合起来?
我尝试使用LCASE进行构建搜索,但不起作用? 这是源查询的一部分,只有这部分有问题错误Mysql 如何将innerjoin查询与2个LCASE+1个查询中的替换组合起来?,mysql,sql,replace,Mysql,Sql,Replace,我尝试使用LCASE进行构建搜索,但不起作用? 这是源查询的一部分,只有这部分有问题错误 AND ((LCASE(SELECT REPLACE (pd.name," ","")) FROM product_description WHERE LCASE (REPLACE (pd.name," ",""))) LIKE '%liondlc10%' OR MATCH(pd.tag) AGAINST('liondlc10') ) O
AND ((LCASE(SELECT REPLACE (pd.name," ","")) FROM product_description
WHERE LCASE (REPLACE (pd.name," ",""))) LIKE '%liondlc10%'
OR MATCH(pd.tag) AGAINST('liondlc10')
)
OR LCASE((SELECT REPLACE (p.model," ","")) FROM product WHERE LCASE (REPLACE (p.model," ",""))) = 'liondlc10'
完整查询:
SELECT p.product_id,
(SELECT AVG(rating) AS total
FROM review r1
WHERE r1.product_id = p.product_id
AND r1.status = '1'
GROUP BY r1.product_id) AS rating
FROM product p
LEFT JOIN product_description pd
ON (p.product_id = pd.product_id)
LEFT JOIN product_to_store p2s
ON (p.product_id = p2s.product_id)
WHERE pd.language_id = '1'
AND p.status = '1'
AND p.date_available <= NOW()
AND p2s.store_id = '0'
AND ((LCASE(SELECT REPLACE (pd.name," ","")) FROM product_description
WHERE LCASE (REPLACE (pd.name," ",""))) LIKE '%liondlc10%'
OR MATCH(pd.tag) AGAINST('liondlc10') /* <-- part error */
)
OR LCASE((SELECT REPLACE (p.model," ","")) FROM product
WHERE LCASE (REPLACE (p.model," ",""))) = 'liondlc10' /* <-- part error */
OR LCASE(p.sku) = 'liondlc10'
OR LCASE(p.upc) = 'liondlc10'
OR LCASE(p.ean) = 'liondlc10'
OR LCASE(p.jan) = 'liondlc10'
OR LCASE(p.isbn) = 'liondlc10'
OR LCASE(p.mpn) = 'liondlc10'
GROUP BY p.product_id
ORDER BY p.sort_order ASC, LCASE(pd.name) ASC
LIMIT 0, 15
当我尝试这个查询时,mysql说
1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解可在“从产品描述中选择替换pd.name”附近使用的正确语法
第16行的LCASE代表在哪里
我可以使用LCASE,但我如何使用以下内容?
需要帮助,已经堆叠了2周:。谢谢你的建议 它正在工作:
AND (LCASE(REPLACE(pd.name,' ',''))
LIKE '%liondlc10%' OR MATCH(pd.tag) AGAINST('liondlc10'))
OR LCASE(REPLACE(p.model,' ','')) = 'liondlc10'
不要对where子句/联接中的列使用函数。这是非常糟糕的做法。使用函数而不是值。你的方法杀死了数据库performance@dcieslak但是,如果我不在哪里使用,我如何才能使用替换?你能给我举个例子吗?你有从哪里来的产品描述。还好吗?@dcieslak实际上是2个查询。当我尝试联合收割机但失败时,已在产品描述pd中使用left。我认为这样写全文应该没问题。那么为什么不能:和LCASE替换pd.name“”,比如“%liondlc10%”或对“liondlc10”使用MATCHpd.tag