我在一列中插入了多个数据,但无法从此列中选择一个数据,例如:仅从col_1获取数据
col_1 | col_2|
--------+------+
a,b,c,d |e |
----------------
答案 0 :(得分:0)
如果列中的数据结构一致,您可以定义自己的函数以将列拆分为多列:
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'
答案 1 :(得分:0)
只需你可以使用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>';