MySQLがlikeファジイクエリの代わりに効率的な方法

1427 ワード

MySQL-locate()関数
LOCATE(substr,str,pos)は、strにpos(開始位置)が現れるsubstr文字列の位置を返します.0注は返されません.posは、2回目の位置を表示するには、1回目の位置より大きくなければなりません.
likeを直接使用すると、クエリの効率が低下します.
SELECT id,vari_sku,prod_s_id,prod_s_sku from prod_sync_s_shopee where vari_sku LIKE '%+%';

locate()関数の代替書き方:
SELECT id,vari_sku,prod_s_id,prod_s_sku from prod_sync_s_shopee where locate('+',prod_sync_s_shopee.vari_sku) <> 0;

その他の関数:POSITION()INSTR()FIND_IN_SET()
参照先:https://blog.csdn.net/lly983909814/article/details/71642814