91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Yii框架參數化查詢中IN查詢只能查詢一個怎么辦

發布時間:2021-07-13 15:23:19 來源:億速云 閱讀:206 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Yii框架參數化查詢中IN查詢只能查詢一個怎么辦的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體如下:

在yii框架中使用參數化進行IN查詢時,結果不如所愿

$sql =<<<SQL
SELECT id FROM tb WHERE id IN(:ids)
SQL;
$db = GeneralService::getSlaveDB();
$result = $db->createCommand($sql)->query([':ids' => '1013,1015,1017'])->readAll();
print_r($result);
Array
(
  [0] => Array
    (
      [id] => 1013
    )
)

于是翻了yii框架中相關源碼,發現采用的是pdo查詢,于是又查詢了pdo相關資料,知道了原因:不能讓占位符代替一組值

SELECT id FROM tb WHERE userid IN ( ? );

既然知道了原因,那么就找到替代的方法,FIND_IN_SET正好可以滿足

$sql =<<<SQL
SELECT id FROM tb WHERE FIND_IN_SET(id, :ids)
SQL;
$db = GeneralService::getSlaveDB();
$result = $db->createCommand($sql)->query([':ids' => '1013,1015,1017'])->readAll();
print_r($result);
Array
(
  [0] => Array
    (
      [id] => 1013
    )
  [1] => Array
    (
      [id] => 1015
    )
  [2] => Array
    (
      [id] => 1017
    )
)

簡單科普下FIND_IN_SET函數

FIND_IN_SET(str,strlist)

假如字符串str在由N子鏈組成的字符串列表strlist中,則返回值的范圍在 1 到 N 之間。

一個字符串列表就是一個由一些被 ‘,' 符號分開的子鏈組成的字符串。如果第一個參數是一個常數字符串,而第二個是type SET列,則   FIND_IN_SET() 函數被優化,使用比特計算。

如果str不在strlist 或strlist 為空字符串,則返回值為 0 。如任意一個參數為NULL,則返回值為 NULL。這個函數在第一個參數包含一個逗號(‘,')時將無法正常運行。

感謝各位的閱讀!關于“Yii框架參數化查詢中IN查詢只能查詢一個怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乳山市| 高陵县| 孟村| 青阳县| 青铜峡市| 瓦房店市| 内丘县| 交城县| 保德县| 徐州市| 济宁市| 罗平县| 齐河县| 栾城县| 隆安县| 龙游县| 玉溪市| 黄浦区| 湄潭县| 特克斯县| 胶南市| 扶绥县| 林口县| 慈利县| 黔东| 浮山县| 洮南市| 禹州市| 恩施市| 荥经县| 谢通门县| 博客| 马关县| 鹤峰县| 洪泽县| 大城县| 玛曲县| 博白县| 肇州县| 富宁县| 新泰市|