从具有多个数据的列中获取一个数据

时间:2017-08-28 15:15:42

标签: php sql jsp mysqli

我在一列中插入了多个数据,但无法从此列中选择一个数据,例如:仅从col_1获取数据

col_1   | col_2|
--------+------+
a,b,c,d |e     |
----------------

2 个答案:

答案 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>';