我已經插入多個數據在一列,但不能選擇該列如一個數據:僅從COL_1獲取數據B取一個數據有多個數據
col_1 | col_2|
--------+------+
a,b,c,d |e |
----------------
我已經插入多個數據在一列,但不能選擇該列如一個數據:僅從COL_1獲取數據B取一個數據有多個數據
col_1 | col_2|
--------+------+
a,b,c,d |e |
----------------
如果列中的數據始終結構,你可以定義自己的函數列分成多列:
DELIMITER $$
CREATE DEFINER=CURRENT_USER FUNCTION `SPLIT_STR`(
x VARCHAR(255), # Input
delim VARCHAR(12), # Delimiter
pos INT # Position or Field
) RETURNS varchar(255) CHARSET latin1
DETERMINISTIC
BEGIN
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');
END$$
DELIMITER ;
如下使用它:
SELECT SPLIT_STR(col1, ',', 2) FROM table; # Results in 'b'
您可以使用explode(',',$ data);功能
但我推薦的這個方法來使用多個數據工作:
<?php
// Your data
$data = 'a,b,c,d';
// Convert string to array
$data = explode(',', $data);
// Encode data and save it into database
$encoded_data = json_encode($data);
// Return data from database and convert it to array
$decoded_data = json_decode($encoded_data);
// Get item from returned array
echo $decoded_data[2];
echo '<pre>';
print_r($encoded_data);
echo '<br>';
print_r($decoded_data);
echo '</pre>';
當我們使用php時是個好主意。但是當我們用另一種語言時沒有用。這就是爲什麼我在標籤中提到jsp。 –
這是否工作在MySQL的? –
是的。我在我自己的MySQL數據庫中使用這個函數db –
非常感謝。這是我在mysql中的第一個自定義函數,你的答案完美無缺。所以你應該得到賞金和讚賞。 –