Yii框架下的where條件查詢
條件查詢
$customers = Customer::find()->where($cond)->all();
$cond就是我們所謂的條件,條件的寫法也根據查詢資料的不同存在差異,那麼如何用yii2的方式來寫查詢條件呢?
[[簡單條件]]
// SQL: (type = 1) AND (status = 2). $cond = ['type' => 1, 'status' => 2] // SQL:(id IN (1, 2, 3)) AND (status = 2) $cond = ['id' => [1, 2, 3], 'status' => 2] //SQL:status IS NULL $cond = ['status' => null]
[【and】]:將不同的條件組合在一起,用法舉例:
//SQL:`id=1 AND id=2` $cond = ['and', 'id=1', 'id=2'] //SQL:`type=1 AND (id=1 OR id=2)` $cond = ['and', 'type=1', ['or', 'id=1', 'id=2']] //SQL:`type=1 AND (id=1 OR id=2)` //此寫法'='可以換成其他操作符,例:in like != >=等 $cond = [ 'and', ['=', 'type', 1], [ 'or', ['=', 'id', '1'], ['=', 'id', '2'], ] ]
[[or]]:
//SQL:`(type IN (7, 8, 9) OR (id IN (1, 2, 3)))`
$cond = ['or', ['type' => [7, 8, 9]], ['id' => [1, 2, 3]]
[[not]]:
//SQL:`NOT (attribute IS NULL)`
$cond = ['not', ['attribute' => null]]
[[between]]: not between 用法相同
//SQL:`id BETWEEN 1 AND 10`
$cond = ['between', 'id', 1, 10]
[[in]]:
//SQL:`id IN (1, 2, 3)`
$cond = ['in', 'id', [1, 2, 3]] or $cond = ['id'=>[1, 2, 3]]
//IN條件也適用於多欄位
$cond = ['in', ['id', 'name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']]]
//也適用於內嵌sql語句
$cond = ['in', 'user_id', (new Query())->select('id')->from('users')->where(['active' => 1])]
[[like]]:
//SQL:`name LIKE '%tester%'`
$cond = ['like', 'name', 'tester']
//SQL:`name LIKE '%test%' AND name LIKE '%sample%'`
$cond = ['like', 'name', ['test', 'sample']]
//SQL:`name LIKE '%tester'`
$cond = ['like', 'name', '%tester', false]
[[exists]]: not exists用法類似
//SQL:EXISTS (SELECT "id" FROM "users" WHERE "active"=1)
$cond = ['exists', (new Query())->select('id')->from('users')->where(['active' => 1])]
此外,您可以指定任意運算子如下
//SQL:`id >= 10`
$cond = ['>=', 'id', 10]
//SQL:`id != 10`
$cond = ['!=', 'id', 10]
相關推薦
漲知識,漲知識 :ThinkPHP框架下Where條件查詢Mysql數據庫某字段是否為空
field 打印 想要 sts bsp ech 是否為空 time inf 代碼虐我千百遍,我對代碼如初戀~ 問題: 查詢某字段app_date數據是否為NULL,正常我們實現的辦法是: $map[‘app_data‘] = array(‘eq‘,‘null
SSH框架下的條件查詢及查詢結果分頁
之前看過許多別人BLOG中寫的方案,但是沒有自己動手從資料庫、後端、前端全過程實現的話,難以發現自己存在問題。一是沒有形成自己獨有的解決方案,二是不知道理論和現實之間的差異。 本文例子的使用場景:資料庫中儲存了一系列商品資訊,欄位包括商品名字和商品價格。 需
Yii框架下的where條件查詢
條件查詢 $customers = Customer::find()->where($cond)->all(); $cond就是我們所謂的條件,條件的寫法也根據查詢資料的不同存在差異,那麼如何用yii2的方式來寫查詢條件呢? [[簡單條件]] // SQL:
thinkphp3.2 where 條件查詢
where方法的用法是ThinkPHP查詢語言的精髓,也是ThinkPHP ORM的重要組成部分和亮點所在,可以完成包括普通查詢、表示式查詢、快捷查詢、區間查詢、組合查詢在內的查詢操作。where方法的引數支援字串和陣列,雖然也可以使用物件但並不建議。 字串條
Mysql 中Left/Right join on後面and和where條件查詢的差異-Mysql SQL運算子是有優先順序
一、Mysql中Left/Right join on後面and和where條件查詢的差異 1、建兩張測試表,一張商戶定義表、一張商戶操作狀態明細表 1)商戶定義表 CREATE TABLE hope.merchant ( MERCHANT_id varchar(100) COLLATE ut
SpringBoot框架下的SQL查詢空值結果時返回Map型別欄位為空
今天在執行業務的時候發現在一次查詢時, 查詢出當一個欄位值為null時,封裝成Map型別返回的物件則不存在該值如:<select id="getUserDetail" parameterType="java.util.Map" resultType="java.util
springMVC+spring+mybatis 框架下分頁查詢
一、Mapper.xml(xml) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://
yii框架下的後臺管理員登入操作
在搭建好後臺的網頁之後,我們需要實現網頁中的功能,如登入,註冊,記住密碼等等.以下分步進行. 本文使用yii框架. 後臺管理員的登入: 1,在mysql中建立管理員的資料表; 編寫sql檔案,具體程式碼如下: DROP TABLE IF EXISTS `test_adm
yii框架下 i18nDemo 模式 網站多種語言切換
1) 在根據yii資料夾中的framework/messages/中找到config.php檔案,並將其複製到api/protected/messages下(如果沒有對應檔案,請自己新建)。 2) 在config.php中設計好你需要的集中語言,例如下面這種
MySQL第二天--where條件查詢、檢視及函式
//把資料庫匯出到指令碼檔案 mysqldump -uroot -p1234 --databases abc > d:/a/abc.sql //--databases是需要兩個-- Where
yii框架下使用redis
就是 hive 運行程序 port ive config brush alias col 1 首先獲取到 yii2-redis-master.zip 壓縮包 下載地址https://github.com/yiisoft/yii2-redis/archive/master.z
yii框架中findall方法取資料使用總結,包括select各種條件,where條件,order by條件,limit限制以及使用單純sql語句query時佔位符的使用等
在yii框架中可以使用對映類的find方法取出一條資料或者用findall方法取出數條資料來,那麼如何按照所需條件來取資料呢,主要用到了CDbCriteria這個類,這個類是yii自帶的操作資料庫的支援類,可以作為引數傳遞給find等方法,這裡用findall做個例子:
yii框架中findall方法取資料使用總結,包括select各種條件,where條件,order by條件,limit限制等
在yii框架中可以使用對映類的find方法取出一條資料或者用findall方法取出數條資料來,那麼如何按照所需條件來取資料呢,主要用到了CDbCriteria這個類,這個類是yii自帶的操作資料庫的支援類,可以作為引數傳遞給find等方法,這裡用findall做個例子
在SqlServer裡面沒有索引的情況下 where子句的條件順序對查詢效率有影響嗎?
在沒有建立索引的情況下 在不建立索引的情況下,where子句的條件順序,對查詢結果優化作用不明顯 那麼,就只能通過索引的辦法了 SQLServer查詢分析器不會自動優化嗎? 應該跟VS的編譯器一樣,
解決query查詢輸入geometry參數查詢不到而通過where條件可以查到的問題
gis 查詢參數 數據 ron http 顯示 src 出現 ren 解決query查詢輸入geometry參數查詢不到而通過where條件可以查到的問題 原因: 是因為geometry的坐標系和所要查詢的圖層不一樣導致的(問題引起是由於底圖中疊加了不同的坐標系的引起的)
yii2數據條件查詢-where專題
user attr isset sof sta margin con type name 條件查詢 $customers = Customer::find()->where($cond)->all(); $cond就是我們所謂的條件,條件的寫法也根據查詢數據的
YII 框架查詢
UNC mode 標量 單行 最小值 comm b- 數據行 子查詢 基礎查詢 Customer::find()->one(); 此方法返回一條數據; Customer::find()->all(); 此方法返回所有數據; Customer::f
SSH框架下的分頁查詢
一 配置PageBean的java類,即分頁封裝的類。(泛型) 配置一個分頁查詢的實體類,需要配置什麼私有變數?顯然,當前處於多少頁是需要的,總頁數是需要的;總記錄數是需要的,每頁顯示多少個記錄是需要的;記錄內容(集合)也是需要的。 二 顯示當前從資料庫返回的集合記錄的程式碼邏輯: 前幾
Jpa帶下拉框的多條件查詢
如下示例: //查詢商品資訊 @Query(value = "select * from tb_product " + "where del_flag=?1 and name like ?4 and " + "case ?2 when 'all' then
MySQL - 如何提高SQL的查詢效率(where條件優化)
目錄 說在前面 35條優化規則 總結 說在前面 整天說SQL優化,SQL優化,到底怎麼才算是SQL優化呢,下面從百度總結了一些關於Oracle裡常用的一些有效的優化方法。僅供參考,文章內容來源於網路。 35條優化規則 (1)優先考慮建立索引 對查詢進行優化,應