日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql动态数据多条件查询

發布時間:2025/1/21 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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动态数据多条件查询的全部內容,希望文章能夠幫你解決所遇到的問題。

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