首頁 後端開發 php教程 Yii查詢中IN查詢只能查詢一個的方法

Yii查詢中IN查詢只能查詢一個的方法

Aug 13, 2017 pm 02:32 PM
參數 查詢

這篇文章主要介紹了Yii框架參數化查詢中IN查詢只能查詢一個的解決方法,結合實例形式分析了Yii框架中IN查詢只能查一個的原因及FIND_IN_SET函數相關功能與使用技巧,需要的朋友可以參考下

本文實例講述了Yii框架參數化查詢中IN查詢只能查詢一個的解決方法。分享給大家供大家參考,具體如下:

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


$sql =<<<SQL
SELECT id FROM tb WHERE id IN(:ids)
SQL;
$db = GeneralService::getSlaveDB();
$result = $db->createCommand($sql)->query([&#39;:ids&#39; => &#39;1013,1015,1017&#39;])->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([&#39;:ids&#39; => &#39;1013,1015,1017&#39;])->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。這個函數在第一個參數包含一個逗號(‘,')時將無法正常運作。

【ps】strlist中由逗號組成的字串,不能像平常習慣的那樣,逗號右邊加個空格,那是認不出來的。

#

以上是Yii查詢中IN查詢只能查詢一個的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

12306怎麼查詢歷史購票紀錄 查看歷史購票紀錄的方法 12306怎麼查詢歷史購票紀錄 查看歷史購票紀錄的方法 Mar 28, 2024 pm 03:11 PM

12306訂票app下載最新版是一款大家非常滿意的出行購票軟體,想去哪裡就去那裡非常方便,軟體內提供的票源非常多,只需要通過實名認證就能在線購票,所有用戶的出行車票機票都可以輕鬆買到,享受不同的優惠折扣。還能提前開啟預約搶票,預約飯店、專車接送都是可以的,有了它想去哪裡就去那裡一鍵購票,出行更加簡單方便,讓大家的出行體驗更舒服,現在小編在線詳細為12306用戶帶來查看歷史購票記錄的方法。  1.打開鐵路12306,點擊右下角我的,點擊我的訂單  2.在訂單頁面點擊已支付。  3.在已支付頁

學信網如何查詢自己的學歷 學信網如何查詢自己的學歷 Mar 28, 2024 pm 04:31 PM

學信網如何查詢自己的學歷?在學信網中是可以查詢到自己的學歷,很多用戶都不知道如何在學信網中查詢到自己的學歷,接下來就是小編為用戶帶來的學信網查詢自己學歷方法圖文教程,感興趣的用戶快來一起看看吧!學信網使用教程學信網如何查詢自己的學歷一、學信網入口:https://www.chsi.com.cn/二、網站查詢:第一步:點選上方學信網位址,進入首頁點選【學歷查詢】;第二步:在最新的網頁中點選如下圖箭頭所示的【查詢】;第三步:之後在新頁面點選【的登陸學信檔案】;第四步:在登陸頁面輸入資料點選【登陸】;

C++ 函式參數型別安全檢查 C++ 函式參數型別安全檢查 Apr 19, 2024 pm 12:00 PM

C++參數類型安全檢查透過編譯時檢查、執行時間檢查和靜態斷言確保函數只接受預期類型的值,防止意外行為和程式崩潰:編譯時類型檢查:編譯器檢查類型相容性。運行時類型檢查:使用dynamic_cast檢查類型相容性,不符則拋出異常。靜態斷言:在編譯時對型別條件進行斷言。

MySQL與PL/SQL的異同比較 MySQL與PL/SQL的異同比較 Mar 16, 2024 am 11:15 AM

MySQL與PL/SQL是兩種不同的資料庫管理系統,分別代表了關係型資料庫和過程化語言的特性。本文將比較MySQL和PL/SQL的異同點,並附帶具體的程式碼範例進行說明。 MySQL是一種流行的關聯式資料庫管理系統,採用結構化查詢語言(SQL)來管理和操作資料庫。而PL/SQL是Oracle資料庫特有的過程化語言,用於編寫預存程序、觸發器和函數等資料庫物件。相同

蘋果手機怎麼查詢啟動日期 蘋果手機怎麼查詢啟動日期 Mar 08, 2024 pm 04:07 PM

使用蘋果手機想要查詢啟動日期,最好的方法是透過手機中的序號來查詢,也可以透過存取蘋果的官網來進行查詢,透過連接電腦查詢,下載第三方軟體查詢。蘋果手機怎麼查詢啟動日期答:序號查詢,蘋果官網查詢,電腦查詢,第三方軟體查詢1、用戶最好的方式就是知道自己手機的序號,開啟設定通用關於本機就可以看到序號。 2.使用序號不僅可以知道自己手機的啟動日期,還可以查看手機版本,手機產地,手機出廠日期等。 3.用戶訪問蘋果的官網找到技術支持,找到頁面底部的服務和維修欄目,裡面查看iPhone的激活信息。 4.用戶

C++ 函式中引用參數和指標參數的高階用法 C++ 函式中引用參數和指標參數的高階用法 Apr 21, 2024 am 09:39 AM

C++函數中的引用參數(本質為變數別名,修改引用修改原始變數)和指標參數(儲存原始變數的記憶體位址,透過解引用指標修改變數)在傳遞和修改變數時有著不同的用法。引用參數常用於修改原始變數(尤其是大型結構體),傳遞給建構子或賦值運算子時避免複製開銷。指標參數則用於靈活指向記憶體位置,實現動態資料結構或傳遞空指標表示可選參數。

Discuz資料庫位置查詢技巧分享 Discuz資料庫位置查詢技巧分享 Mar 10, 2024 pm 01:36 PM

論壇是網路上非常常見的網站形式之一,它為使用者提供了一個分享資訊、交流討論的平台。而Discuz是一款常用的論壇程序,相信很多站長都已經非常熟悉了。在進行Discuz論壇的開發和管理過程中,經常需要查詢資料庫中的資料來進行分析或處理。在這篇文章中,我們將分享一些查詢Discuz資料庫位置的技巧,並提供具體的程式碼範例。首先,我們需要了解Discuz的資料庫結構

開源模型首勝GPT-4!競技場最新戰報引熱議,Karpathy:這是我唯二信任的榜單 開源模型首勝GPT-4!競技場最新戰報引熱議,Karpathy:這是我唯二信任的榜單 Apr 10, 2024 pm 03:16 PM

能打得過GPT-4的開源模型出現了!大模型競技場最新戰報:1040億參數開源模型CommandR+攀升至第6位,與GPT-4-0314打成平手,超過了GPT-4-0613。圖片這也是第一個在大模型競技場上擊敗GPT-4的開放權重模型。大模型競技場,可是大神Karpathy口中唯二信任的測試基準之一。圖片CommandR+來自AI獨角獸Cohere。這家大模型新創公司的共同創辦人兼CEO,正是Transformer最年輕作者AidanGomez(簡稱割麥子)。圖片這份戰報一出,又掀起了一波大模型社

See all articles