日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Mysql动态数据多条件查询

發布時間:2025/1/21 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql动态数据多条件查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql動態數據多條件查詢

前言

有的時候,我們進行數據的數據查詢的時候,我們會加入篩選條件。

例如:

select * from user where username = ? // ? 指的是自己輸入的過濾條件

但是有的時候,我們又不想查詢這個username的關鍵詞。

select * from user # 只想上面語句效果

怎么辦呢?

原理解析

# 首先我們知道下面兩條語句的效果是一樣的。 select * from userselect * from user where username = username# username = username, 肯定為true # 即 select * from user 和 select * from user where username = username 等價

那么我們添加一個IF語句,就可以實現我們的需求了。

select * from user where username = IF(?='',username,?) # ? 將會被替換成您輸入的查詢關鍵詞

實踐

這里使用PHP來進行演示。

function select_user_better($username, $email) {global $mysqli;// 動態多條件符合查詢$result = $mysqli->query("SELECT * FROM user WHERE username=IF('$username'='',username,'$username')AND email=IF('$email'='',email,'$email');") or die($mysqli->errno);while ($row = $result->fetch_assoc()) {pre_r($row);}}

調用函數

select_user_better("","");

由于我們輸入$username和$email 為 空。

所以sql語句運行后,等價于下面的形式

SELECT * FROM user WHERE username=usename AND email=email

自然查詢出了全部的數據。

運行效果如下:

當然我們可以根據用戶名查詢。

調用函數

select_user_better("admin","");

運行效果:

運用實例

/*** 用戶查詢* @tips: 支持通過$id, $title, $category, $meta來動態多條件查詢* @param $id* @param $title* @param $category* @param $meta*/ function article_select($id, $title, $category, $meta) {global $mysqli;$result = $mysqli->query("SELECTid,create_time,edit_time,title,content,author,category,meta,main_pic FROMarticle WHEREid=IF('$id'='',id,'$id') ANDtitle like IF('$title'='',title,'%$title%') ANDcategory=IF('$category'='',category,'$category') ANDmeta like IF('$meta'='',meta,'%$meta%')") or die($mysqli->error);$arr = array();while ($row = $result->fetch_assoc()) {array_push($arr, $row);}return $arr; }

總結

以上是生活随笔為你收集整理的Mysql动态数据多条件查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。