我正在编写mysql查询,我需要将用户输入的数据与数据库选项卡中的sku列进行比较
查询就像
SELECT *
FROM `is_product_info`
WHERE REPLACE( '-', '', sku ) LIKE '%ETI2006%'
这样如果数据库中的sku在sku中包含“ - ”,我会在比较前用“”替换所有连字符。
所以无论sju是否包含ETI2006或ETI-2006,它都会出现输出
答案 0 :(得分:1)
我想你可能会喜欢这个
SELECT * FROM is_product_info WHERE REPLACE( sku , '-', '' ) LIKE '%ETI2006%'
答案 1 :(得分:0)
我没有尝试运行MySQL,但这应该可行:
SELECT *
FROM `is_product_info`
WHERE sku REGEXP REPLACE('ETI-2006','-','-?');
答案 2 :(得分:0)
我在替换语法时犯了错误,它适用于下面的一个:
SELECT * FROM is_product_info WHERE REPLACE(sku,' - ','')LIKE'%ETI2006%'
答案 3 :(得分:0)
在每一行上使用replace()
会降低它的速度。
所有这些方法都应该更快 - 看看哪种方法最适合你:
选项1 - 使用LIKE两次:
WHERE sku LIKE '%ETI-2006%'
OR sku LIKE '%ETI2006%'
选项2 - 使用RLIKE一次:
WHERE sku RLIKE 'ETI-?2006'