0

可能重复:
您可以拆分/分解 MySQL 查询中的字段吗?

我想在mysql过程中转换phpexplode函数
但是
explode函数不包含长度(我们不知道分隔符在哪个索引上)
并且
在exploded数组上运行一个循环,就像我写的php代码中的循环一样那个爆炸的数组

PHP 代码

$data = 'Computers|Personal Computer|Home Use|Accessories|Mouse|Wireless Mouse';    

$categories = explode("|", $data);

for ( $i = 0; $i < sizeof($categories); $i++ ){

      $this->insert_category( $categories[$i] );
}

我在 mysql 中使用了下面的函数,但它只返回一个值,但我想要一个数组,这个函数也需要一个特定的索引,在我的情况下是未知的,因为数据将是任何类型的。
mysql

CREATE FUNCTION SPLIT_STR(  
   x VARCHAR(255),  
   delim VARCHAR(12),  
   pos INT  
 )


RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),  
   LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),  
   delim, '');  

我还使用这些函数只是为了使某些事情更接近我的结果,但是这些函数的行为不准确,例如它们没有正确拆分,没有返回正确的索引等,

我正在一个一个地使用以下所有功能,或者不是同时使用所有功能

SET temp2 = substring_index(data_mysql, '|', 2);  
SET temp2 = find_in_set('|', data_mysql);  

SET temp2 = instr(data_mysql, '|');  
SET temp3 = SPLIT_STR(data_mysql, '|', temp2 );  

我将mysql过程中的变量声明为

DECLARE data_mysql           VARCHAR(200) DEFAULT NULL;  
DECLARE temp1                VARCHAR(150) DEFAULT NULL;  
DECLARE temp2                VARCHAR(150) DEFAULT NULL;  
DECLARE temp3                VARCHAR(150) DEFAULT NULL;  
4

0 回答 0