鍍金池/ 問答/PHP  數(shù)據(jù)庫  HTML/ mysql 多字段 OR 查詢?nèi)绾闻判?

mysql 多字段 OR 查詢?nèi)绾闻判?

現(xiàn)有表user

數(shù)據(jù)結(jié)構(gòu)
id name sex age
1 B 2 20
2 A 2 25
3 B 1 20
4 A 1 30

select * from user where name = 'A' or sex = '1' 可查出數(shù)據(jù)

2 A 2 25
3 B 1 20
4 A 1 30

從上數(shù)據(jù)來看 id 為 4的數(shù)據(jù)匹配度最高 ,怎樣排序能使匹配度最高(多字段)的數(shù)據(jù)靠前.

回答
編輯回答
呆萌傻

其實(shí)這個(gè)問題可以看成是數(shù)學(xué)上集合的的問題
你的這個(gè)sql:

select * from user where name = 'A' or sex = '1' 

可以等價(jià)成下面這個(gè)sql

select * from user where name = 'A' AND sex = 1 
UNION ALL
SELECT * FROM user WHERE name = 'A' AND sex != 1
UNION ALL
SELECT * FROM user WHERE name != 'A' AND sex = 1

拆解成三部分,可以自由調(diào)整顯示順序
謝謝。

2017年8月6日 02:41