2009-06-25 61 views
1

我使用mysql。在一個領域 我已插入像字符串1數據::字符串2 兩串由:: concated 現在我想只獲取第二個字符串, 可能任何機構幫助我,這 在此先感謝MySql中的字符串操作

+0

你能提供更多細節嗎?你需要什麼查詢 – 2009-06-25 10:35:55

回答

2
SELECT SUBSTRING_INDEX('string1::string2', '::', -1) 
3

你會意識到,這是一個可怕的想法?關係數據庫系統有列是有原因的。這樣做,你正在反對系統;這是一個衆所周知的反模式。 你應該真的嘗試爲分隔值使用單獨的列。

也就是說,你可以使用MySQL的字符串操作函數來檢索值。

這是MySQL的字符串函數的概述: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

有上述解釋如何與他們合作,在頁面上的註釋。或者您可以使用SUBSTRING_INDEX(),如explained in the other answers

+0

看起來,MySQL有一個功能來完成這件事情。我不會假裝一開始就知道這一點,但SUBSTRING_INDEX()顯然很容易實現這一點。 – Sampson 2009-06-25 10:42:48

+0

哎呀,你是對的,不知道。編輯答案。 – sleske 2009-06-25 11:47:56

0

如前所述,這是一個糟糕的設計。您應該爲多個日期使用多列。除此之外,您可以使用通配符來查找值。例如說你正在尋找09/08/2009 :: 09/09/2009,

SELECT SUBSTRING('date',-10) 
FROM myTable 
WHERE id = 1; 

這將返回您的日期的最後10個字符。再說一次,這不是一個「好」的解決方案。好的解決方案是修復數據庫本身。