你可以選擇以下的「國家=」的文字,然後,一旦你有一個字符串,挑選前的第一個「&」
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(ColumnA, 'Country=', -1), '&', 1) AS ColumnB
FROM `atable`
全文見第http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_substring-index
這裏的一個試驗來證明:
mysql> SELECT * FROM atable;
+------+------------------------------------------+
| row | columna |
+------+------------------------------------------+
| Row1 | Lauguage=English&Country=USA&Gender=Male |
| Row2 | Gender=Female&Language=French&Country= |
| Row3 | Country=Canada&Gender=&Language=English |
+------+------------------------------------------+
mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(ColumnA, 'Country=', -1), '&', 1) AS ColumnB FROM atable;
+---------+
| ColumnB |
+---------+
| USA |
| |
| Canada |
+---------+
重新您的後續問題:
INSERT INTO atable VALUES ('Row4', 'Gender=&Language=English');
SELECT `row`, IF(LOCATE('Country=', ColumnA)>0,
COALESCE(
NULLIF(SUBSTRING_INDEX(SUBSTRING_INDEX(ColumnA, 'Country=', -1), '&', 1), ''),
'Blank string is not valid!'),
'Missing Country!') AS ColumnB
FROM `atable`
+------+----------------------------+
| row | ColumnB |
+------+----------------------------+
| Row1 | USA |
| Row2 | Blank string is not valid! |
| Row3 | Canada |
| Row4 | Missing Country! |
+------+----------------------------+
你爲什麼把數據像這樣在你的桌子嗎?規範化! – Barmar 2014-10-18 00:08:18
使用'LOCATE()'和'SUBSTRING()'函數。不幸的是,它在SQL中很複雜,因爲你需要對'LOCATE()'使用嵌套調用來查找結束它的'&'。 – Barmar 2014-10-18 00:10:29