3

こんにちは、ウェブの善良な人々、

このクエリがあるとします

$query ="select col1, col2 From table where condition";

col2 の値に対して次の操作を取得したい

$DLMPos = strpos(col2, '-DLM'); 
if($DLMPos != "" && $DLMPos >= 0){
$col2= strpos(substr(col2, $DLMPos, strlen(col2)), " ");        
}

質問: この処理をクエリに含める方法はありますか? == > $query ="select col1,if(bla bla bla) From table where condition";.

mysql クエリで if ステートメントを実行できることはわかっていますが、 strpos や substr などを実行できますか?

前もって感謝します

4

2 に答える 2

5

MySQL の文字列処理関数のリストは、http: //dev.mysql.com/doc/refman/5.6/en/string-functions.htmlで確認できます。

strposとはとsubstrにほぼ対応しますが、ユースケースではより便利な場合があります。LOCATESUBSTRINGSUBSTRING_INDEX

delimiter が出現するstr前のstring から部分文字列を返します。が正の場合、最後の区切り文字の左側 (左から数えて) のすべてが返されます。が負の場合、最後の区切り文字の右側 (右から数えて) のすべてが返されます。countdelimcountcount

条件文を書けるIF機能もあります。

于 2013-07-09T13:13:27.063 に答える
0

必要なことを正確に行う方法はわかりませんが、関数を使用して各行を読み取るとmysql_fetch_row()、ループ内の各レコードに対してロジックを実行できます。

これを行う方法については、こちらをご覧ください: PHP: MySQL レコードを一度に 1 つずつ取得する

于 2013-07-09T13:23:12.683 に答える