2
我有一个mySQL通配符查询不起作用,可能是因为我使用InnoDB而不是MyISAM。LIKE和REGEXP有什么区别?
SELECT a.product_id, a.category_id FROM products a
LEFT JOIN users u ON u.userid=a.ownerid
WHERE a.active=1 AND a.approved=1
AND a.deleted=0 AND a.name LIKE '%*my*%'
AND a.name LIKE '%*donuts*%'
AND (a.name REGEXP '()*(*my*)*()*(*donuts*)()*')
无论何时使用单词而不是通配符,它都可以正常工作,但这不是问题。
我只是想知道,是真正需要的已经做了
LIKE '%*my*%' AND a.name LIKE '%*donuts*%'
有什么区别后
(a.name REGEXP '()*(*my*)*()*(*donuts*)()*')
的一部分吗?
''()*(* my *)*()*(* donuts *)()*'' - 这是非常奇怪的正则表达式。我敢打赌,这个表达式的作者不知道如何编写正则表达式 – zerkms
“我有一个不能正常工作的mySQL通配符查询,因为我使用的是InnoDB而不是MyISAM。” ---不,它不起作用,因为'LIKE'和'REGEX'表达式组成不正确 – zerkms
你可能会更好地告诉我们你的目标(例如你在找什么)并询问如何做到这一点,因为我不太清楚上面是否有你认为它的作用... – Nanne