看板 PHP 關於我們 聯絡資訊
※ 引述《chan15 (ChaN)》之銘言: : 大家好,我今天table有一個欄位是存放用,組成的字串 例:1,2,3 : 目的是想要用IN來篩選內容,假設欄位名稱叫做xyz好了 : $val = 1; : $query = sprintf("SELECT * FROM table WHERE %s IN (xyz)", $val); : 可是我printf $query的結果會變成 : "SELECT * FROM table WHERE 1 IN (xyz)" : xyz在IN()裡面變成一個字串而非我設定的欄位 : 請問該怎樣才能達到我的目的呢? 參考看看,雖然很笨的方法,但可以動~ mysql> select * from b; +-------+ | name | +-------+ | 1,2,3 | +-------+ 1 row in set (0.00 sec) mysql> select * from c; +------+-------+ | id | title | +------+-------+ | 1 | a | | 1 | b | | 1 | c | | 1 | d | | 2 | d | | 3 | d | +------+-------+ 6 rows in set (0.00 sec) mysql> select c.id,c.title from b,c where concat(',',b.name,',') like concat('%,',c.id,',%'); +------+-------+ | id | title | +------+-------+ | 1 | a | | 1 | b | | 1 | c | | 1 | d | | 2 | d | | 3 | d | +------+-------+ 6 rows in set (0.00 sec) mysql> -- 3WA訓練家的工作室 宗旨:諸葛單中,謝謝 個人佈弱格 網址:http://3wa.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.9.79 ※ 編輯: shadowjohn 來自: 114.32.9.79 (04/09 18:13)
chan15:我後來也是用LIKE解決的,thanks。 04/10 03:04
KC73:SELECT id,title FROM c WHERE FIND_IN_SET(id,(SELECT name 04/10 16:01
KC73: FROM b))     沒什麼差別.. 04/10 16:02