我有這個疑問:Mysql的選擇最佳匹配與像
SELECT `id` FROM `accounts`
WHERE AES_DECRYPT(`email`, :salt) = CONCAT_WS('@',:mailbox,:host)
OR AES_DECRYPT(`email`, :salt) LIKE CONCAT('%',:host)
我有2個記錄在該表:
id email
1 [email protected]
2 [email protected]
當我運行此查詢是這樣的:
SELECT `id` FROM `accounts`
WHERE AES_DECRYPT(`email`, '123') = CONCAT_WS('@','test','test.com')
OR AES_DECRYPT(`email`, '123') LIKE CONCAT('%','test.com')
我得到這個結果:
id email
2 [email protected]
1 [email protected]
問: 我想是這樣的:我想擁有最佳匹配作爲第一個結果,而無需使用全文搜索。 這是可能的,如果是這樣,我該怎麼做?
最佳匹配是什麼意思? – 2015-02-24 10:56:07
當我搜索[email protected]時,我想將[email protected]作爲第一個結果。 [email protected]比[email protected]有更好的匹配。我希望結果中最匹配的字符最終排在最前面。 – SheperdOfFire 2015-02-24 10:58:36
不好意思說,這對我來說看起來很奇怪。所以[email protected]比[email protected]更好?當尋找Gmail時,[email protected]和[email protected]一樣好?而[email protected]與[email protected]一樣好?我認爲你應該改進你的規則,然後回到這裏。 – 2015-02-24 11:17:41