Mysql 語句 有多個條件 查詢所有 返回符合條件最多的一條
這邊先給你提供一個動態SQL
select
*
from
table
where
1=1 //這一步是針對所有條件均未滿足(where后必須跟子句)
if(name != "" and name!=null){ and name=條件一}
if(sex != "" and sex!=null){ and sex=條件二}
。。。
個人解題思路
第一種:
不額外創建表(連接查詢)
首先,將所有條件單獨查詢并將這些語句內連接
例:
select * from tb as t1
join
(select * from tb where name=條件) as t2
on
*=*
join
(select * from tb where age=條件) as t3
on
*=*
(join。。.. on 。。.)
where
*=條件
然后 將上面的查詢結果看作一個表t
select t.*,count(*) from t
group by * // 以id分組
order by count(*) asc //以id數量為降序
limit(0,1) //取第一行值
mysql的查詢語句多個條件怎么寫
select * from mm where name like '王%' or name like '張%' or name like '李%'
或者
select name from table where name like '王%'
union
select name from table where name like '張%'
union
select name from table where name like '李%'
2樓的沒那么用過 不知可行不可行 也學習了
mysql中一個字段同時滿足多個條件,(3個以上)
SELECT
*_id
FROM
app_polly_file_labels t
WHERE
* = '清新'
or * = '甜美'
or * = '韓潮來襲'
GROUP BY *_id
HAVING count(*_id)=3
或者
SELECT
*_id
FROM
app_polly_file_labels a
INNER JOIN app_polly_file_labels b ON *_id = *_id
INNER JOIN app_polly_file_labels c ON *_id = *_id
WHERE
* ='清新'
AND * ='甜美'
AND * ='韓潮來襲'
擴展資料:
sql常用的復雜查詢語句
一、選擇指定的列
select Sno as 學號,Sname as 姓名 from student
select Sno,Sname from student
二、查詢全部列
select * from student
三、對查詢后的指定列進行命名
select Sname as 姓名,(2014-Sage) as 出生年 from student
select Sname ,(2014-Sage) from student
四、消除取值重復的行
select distinct Sno as 選修了課程的學生學號 from SC
select distinct Sno from SC
五、選擇表中若干元組,滿足條件的
select Sname as 學生姓名 from student where Sdept='IS'
參考鏈接:SQL語句大全
轉載請注明出處華閱文章網 » mysql多個if語句