2011-02-19 12 views
0

私は、MySQLデータベースから目的の番号まで(長いテキストやテキストとして一度に保存されるテキスト全体ではなく)順番に文字を抽出する必要があります。私はPHPを使用しています。どうすればいいですか?MySQLデータベースから文字ごとにテキストを抽出するにはどうすればよいですか?

+0

事前に知られている必要な文字数のですか? – Dogbert

+1

これは通常、正規化されていないデータベースの症状です。 – Oswald

答えて

0

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr

mysql> SELECT SUBSTRING('Quadratically',5); 
     -> 'ratically' 
mysql> SELECT SUBSTRING('foobarbar' FROM 4); 
     -> 'barbar' 
mysql> SELECT SUBSTRING('Quadratically',5,6); 
     -> 'ratica' 
mysql> SELECT SUBSTRING('Sakila', -3); 
     -> 'ila' 
mysql> SELECT SUBSTRING('Sakila', -5, 3); 
     -> 'aki' 
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2); 
     -> 'ki' 


<?php 
$con = mysql_connect("localhost","peter","abc123"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("my_db", $con); 

// select first 5 characters from full_name column in table Persons 
$result = mysql_query("SELECT SUBSTRING(full_name, 1, 5) AS partialName FROM Persons"); 

while($row = mysql_fetch_array($result)) 
    { 
    echo $row['partialName']; 
    echo "<br />"; 
    } 

mysql_close($con); 
?> 
0

SQL関数Substringを使用する必要があります。このリンクには、それを行う方法の例がたくさんあります。 PHPの場合と同じように、単にSQLクエリを呼び出すだけです。

0

SUBSTRINGまたはSUBSTRメソッドを使用できます(同じです)。

mysql> SELECT SUBSTRING('Quadratically',5); 
     -> 'ratically' 
mysql> SELECT SUBSTRING('foobarbar' FROM 4); 
     -> 'barbar' 
mysql> SELECT SUBSTRING('Quadratically',5,6); 
     -> 'ratica' 
mysql> SELECT SUBSTRING('Sakila', -3); 
     -> 'ila' 
mysql> SELECT SUBSTRING('Sakila', -5, 3); 
     -> 'aki' 
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2); 
     -> 'ki' 
関連する問題