User::find()->all(); 此方法返回所有資料;
User::findOne($id); 此方法返回 主鍵 id=1 的一條資料(舉個例子);
User::find()->where(['name' => '小夥兒'])->one(); 此方法返回 ['name' => '小夥兒'] 的一條資料;
User::find()->where(['name' => '小夥兒'])->all(); 此方法返回 ['name' => '小夥兒'] 的所有資料;
User::find()->orderBy('id DESC')->all(); 此方法是排序查詢;
User::findBySql('SELECT * FROM user')->all(); 此方法是用 sql 語句查詢 user 表裡面的所有資料;
User::findBySql('SELECT * FROM user')->one(); 此方法是用 sql 語句查詢 user 表裡面的一條資料;
User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id'); 統計符合條件的總條數;
User::find()->andFilterWhere(['like', 'name', '小夥兒']); 此方法是用 like 查詢 name 等於 小夥兒的 資料
User::find()->one(); 此方法返回一條資料;
User::find()->all(); 此方法返回所有資料;
User::find()->count(); 此方法返回記錄的數量;
User::find()->average(); 此方法返回指定列的平均值;
User::find()->min(); 此方法返回指定列的最小值 ;
User::find()->max(); 此方法返回指定列的最大值 ;
User::find()->scalar(); 此方法返回值的第一行第一列的查詢結果;
User::find()->column(); 此方法返回查詢結果中的第一列的值;
User::find()->exists(); 此方法返回一個值指示是否包含查詢結果的資料行;
User::find()->batch(10); 每次取 10 條資料
User::find()->each(10); 每次取 10 條資料, 迭代查詢
1.簡單的賦值
->where("id=:id", [
':id' => 1
])
上面的程式等同於 id=1
2.AND查詢
->where("id=:id and pack_name=:pack_name", [
':id' => 1,
':pack_name' => 'com.famigo.sandbox'
])
或者
->where([
'and',
'id=:id',
'pack_name=:pack_name'
], [
':id' => 1,
':pack_name' => 'com.famigo.sandbox'
])
這兩種程式等同於 id=1 AND pack_name='com.famigo.sandbox'
3.OR查詢
->where("id=:id or pack_name=:pack_name", [
':id' => 1,
':pack_name' => 'com.famigo.sandbox'
])
或者
->where([
'or',
'id=:id',
'pack_name=:pack_name'
], [
':id' => 1,
':pack_name' => 'com.famigo.sandbox'
])
這兩種程式等同於 id=1 OR pack_name='com.famigo.sandbox'
4.AND OR 混合查詢
->where([
'and',
'display=:display',
[
'or',
'id=:id1',
'id=:id2'
]
], [
':display' => 1,
':id1' => 1,
':id2' => 2
])
上面的程式等同於(display=1) AND ((id=1) OR (id=2))
5.IN查詢
->where([
'in', 'id', [1, 3, 5, 6]
])
上面程式等同於 id in (1, 3, 5, 6)
->where([
'and',
'display=:display',
'lang=:lang',
[
'in', 'id', [1, 3, 5, 6]
]
], [
':display' => 1,
':lang' => 2
])
上面程式等同於 (display=1) AND (lang=2) AND (id
IN (1, 3, 5, 6))
更為麻煩點的例子
->where([
'or',
[
'and',
'display=:display1',
[
'in', 'id', [1, 3, 5, 6]
]
],
[
'and',
'display=:display2',
[
'in', 'id', [2, 4, 8, 9]
]
]
], [
':display1' => 1,
':display2' => 2,
])
上面程式等同於((display=1) AND (id
IN (1, 3, 5, 6))) OR ((display=2) AND (id
IN (2, 4, 8, 9)))
6.NOT IN 查詢
->where([
'not in', 'id', [1, 2, 4, 3]
])
上面程式等同於id
NOT IN (1, 2, 4, 3)
複雜的使用方法和上述的IN是一樣的,參考即可。
7.LIKE 查詢
->where([
'like', 'pack_name', '%sandbox%'
])
上面程式等同於pack_name
LIKE '%sandbox%'
->where([
'like', 'pack_name', [
'%sandbox%',
'com.famigo%'
]
])
上面程式等同於pack_name
LIKE '%sandbox%' AND pack_name
LIKE 'com.famigo%'
->where([
'or like', 'pack_name', [
'%sandbox%',
'com.famigo%'
]
])
上面程式等同於pack_name
LIKE '%sandbox%' OR pack_name
LIKE 'com.famigo%'
->where([
'or not like', 'pack_name', [
'%sandbox%',
'com.famigo%'
]
])
上面程式等同於pack_name
NOT LIKE '%sandbox%' OR pack_name
NOT LIKE 'com.famigo%'
->where([
'not like', 'pack_name', [
'%sandbox%',
'com.famigo%'
]
])
上面程式等同於pack_name
NOT LIKE '%sandbox%' AND pack_name
NOT LIKE 'com.famigo%'
本作品採用《CC 協議》,轉載必須註明作者和本文連結