2010-01-25 204 views
1

有一個查詢:如何將MySQL結果轉換爲字符串?

SELECT blalist FROM blatable WHERE blafield=714 

返回一個字符串,它看起來像: 「2,12,29,714,543,1719」。而且,還有另一個查詢:

SELECT userid, name, surname, creditcardnum, items 
    FROM stolencards WHERE userid IN 
    (SELECT blalist FROM blatable WHERE blafield=714) 

現在不工作。
我只設法通過單獨執行這些查詢來實現它。我應該怎麼做才能將它保存在單個查詢中?

+0

在MySQL thete沒有任何'explode'功能。用'@Tatu Ulmanen'指令去。 – hsz 2010-01-25 14:23:55

回答

4

你不應該存儲在一個小區多個值。 blatable中的每個值應該在其自己的行中,然後您的IN子句將像魅力一樣工作。看看數據庫規範化,特別是在First normal form上應該如何設計你的表。

由於您具有一個單元格中的所有值,因此將所有用戶標識符的比較結果與字符串「2,12,29,714,543,1719」進行比較,這顯然不匹配。您的查詢有效看起來是這樣的:

...FROM stolencards WHERE userid IN ("2,12,29,714,543,1719") 
0

檢查blalist和userid的數據類型是否相同,或blalist真的返回userid?

0

如果您已指定正確的數據類型和PK和FK關係,那就試試這個:

SELECT s.userid, s.name, s.surname, s.creditcardnum, s.items 
FROM stolencards s inner join blatable b on s.userid = b.blafield 
where b.blafield = 714