2017-08-28 20 views

答えて

0

からデータbを取得します一貫して構成されている、あなたは複数の列に列を分割するために、独自の関数を定義することができ、次のよう

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' 
+0

が、これはMySQLで動作するのでしょうか? –

+0

はい。私は自分のMySQLデータベースでこの関数を使用しています –

+0

ありがとうございます。これはmysqlの最初のカスタム関数であり、あなたの答えは完璧に働いています。あなたは賞金とupvoteに値するでしょう。 –

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>'; 
+1

私たちはPHPを使用して良いアイデア。私たちが別の言語を使っているときには役に立ちません。これが私がタグでjspを言及した理由です。 –

関連する問題