在我的代碼中,我將一個字符串變量('4,5,6')傳遞給從此字符串爆炸的存儲過程(4,5,6-Name )。我在存儲過程中使用IN子句,並且我知道IN子句接受('4','5','6')或簡單地(4,5,6)這種類型的數據,但我無法在我的存儲過程。如果還有其他方法可以幫助我,請幫助我。如何在存儲過程中的IN子句中使用字符串mysql
CREATE DEFINER = 'root'@'localhost'
PROCEDURE kbm.report_site_transfer(IN siteid VARCHAR(50), IN datefrom VARCHAR (15), IN dateto VARCHAR (15))
SELECT
*
FROM
tbl_transfer
WHERE
tbl_transfer.siteNameID IN (siteid) AND (tbl_transfer.paymentDate BETWEEN datefrom AND dateto);
請告訴我的'價值site_id' –
@Uchiha其實我爆炸的字符串(4,5,6-anyname),並具有分解它「 - 」分隔符,並希望在IN子句中使用第一個值(4,5,6),但是當我在php中檢查類型時,它顯示一個字符串,因此我無法在存儲過程的IN子句中使用 – Paramjeet
請參閱此處動態創建和執行查詢字符串http://stackoverflow.com/questions/8549619/mysql-dynamically-build-query-string-in-a-stored-procedure-based-on-logic。您需要在傳遞的參數中添加周圍的單引號。 – PaulF