php - mysql查詢方式疑問
PHPz
PHPz 2017-05-31 10:34:41
0
1
619

現有資料表T裡面的欄位“A”,A的值通常為:“12,123,312,1212” 形式。 T中已有數據10W條。

要查詢出A含有單獨"12"的記錄~

例如:
"123,125,1212,1234,312" 不含單獨的一個"12" 不要含有單獨的一個"12" 不要
"1,12,123,1212,321,312" 含有單獨的一個"12" 要
...

#我有2種查詢方法,感覺有點繁瑣~ 一個是CONCAT,一個是LIKE OR

問問大家有沒有更有效率的方法,拜謝~

PHPz
PHPz

学习是最好的投资!

全部回覆(1)
仅有的幸福

可以考慮為欄位A新增全文索引,使用進行全文檢索:

ALTER TABLE `T` ADD FULLTEXT (`A`);

SELECT `id` FROM `T` 
WHERE MATCH(`A`) AGAINST('12' IN BOOLEAN MODE) 
ORDER BY `id` DESC LIMIT 10 OFFSET 0;

要注意的是:
MySQL5.6.4的innodb_ft_min_token_size 的預設值為3.
MyISAM的ft_min_word_len 的預設值為4.
如果你要索引的最小長度是2,那就要在my.. =2
ft_min_word_len=2

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!