我有一個表格,我提取一些值,一列值可以包含「value1 | value2 | value3」,但我只想獲取字符前的| - 「value1」。MySQL獲取特定字符前的所有字符
這是我試過的,但它不工作..我做錯了什麼? 謝謝!
$ SQL =「SELECT * LEFT( '喜歡',找到( '|', '象') - 1)$表名 WHERE
Parent
= '0' 和類型LIKE '頂' ORDER BYOrder
ASC「;
我想用這個所有值,而不只是一個領域..
我有一個表格,我提取一些值,一列值可以包含「value1 | value2 | value3」,但我只想獲取字符前的| - 「value1」。MySQL獲取特定字符前的所有字符
這是我試過的,但它不工作..我做錯了什麼? 謝謝!
$ SQL =「SELECT * LEFT( '喜歡',找到( '|', '象') - 1)$表名 WHERE
Parent
= '0' 和類型LIKE '頂' ORDER BYOrder
ASC「;
我想用這個所有值,而不只是一個領域..
你需要下面的語句來獲得的[COLNAME]該部分:如果你想
LEFT([ColName],INSTR([ColName],"|")-1)
選擇多列到同一記錄集列中,您可以將所有內容與以下內容結合:
SELECT LEFT(ColName,INSTR(ColName,"|")-1) AS FirstValue From $TableName;
UNION ALL
SELECT LEFT(ColName2,INSTR(ColName2,"|")-1) AS FirstValue From $TableName;
如果您想要要在多列上使用此腳本,請編寫sql的創建腳本。
兩件事情:(1)你沒有你*
而你試圖用LEFT
和(2)你把引號like
做表情,所以功能上的工作之間的逗號常數值like
而不是名爲like
的列。嘗試將like
置於反引號中。
SELECT *, LEFT(`Like`, LOCATE('|', `Like`)-1)
...
您也可以使用此MySQL的SUBSTRING_INDEX
功能:
SELECT *, SUBSTRING_INDEX(`Like`, '|', 1)
...
我認爲有一個簡單的方法:
strSplit(ColName,'|',1)
,對嗎?
謝謝,像SUBSTRING_INDEX解決方案更多 – zhihong