SELECT goods_name
FROM ecs_goods
WHERE cat_id
IN ('9','10','12','13','14') AND goods_name
LIKE '%3%'
Bitte weisen Sie auf das Problem hin
Was ist das richtige Format und fragen Sie einen Meister
SELECT goods_name
FROM ecs_goods
WHERE cat_id
IN ('9','10','12','13','14') AND goods_name
LIKE '%3%'
Bitte weisen Sie auf das Problem hin
Was ist das richtige Format und fragen Sie einen Meister
Das Format ist korrekt. Was ist das Problem?
Diese Aussage ist richtig.
Die
-Anweisung ist in Ordnung, aber solange die Datenmenge etwas größer ist, ist sie extrem langsam und der einzige Optimierungspunkt besteht darin, einen Index zu cat_id hinzuzufügen. Aber wenn Sie es richtig erraten haben, handelt es sich bei diesem Feld um ein kategoriales Feld mit wiederholten Werten, sodass das Hinzufügen eines Index keinen Sinn macht.
Wenn es viele solcher SQLs gibt, empfiehlt es sich, ein Retrieval-System, Elastic Search oder Solr zu verwenden.
SELECT warenname FROM ecs_goods WHERE (cat_id = '9'or cat_id ='10' oder cat_id ='12' oder cat_id ='13' oder cat_id ='14') UND warenname LIKE '%3%'
Am besten nicht verwenden
Da die beiden Bedingungen und sind, können Sie sie separat ausführen. Es sollte möglich sein, das Ergebnis zuerst einzugeben und dann zu liken.