1

正規表現を使用してMYSQLデータベースにクエリを実行しようとしています。このパターン1234X32X12の列の下の値を取得しようとしています。

擬似コードをいくつか書いたのですが、正規表現に慣れていないので、誰かに助けてもらえるといいなと思っていました。

コード:

if ($transposed_array[$i][0] starts with number)
    {
        $sid = regex something /^[0-9]*/
        $gid = regex something /X[0-9]*X/
        $gid = remove first and last character from $gid
        $qid = regex something /[0-9]*$/

        $question_text = mysql_query("select question from table where sid = ".$sid." and gid = ".$gid." and qid = ".$qid." limit 1");
        $transposed_array[$i][0] = $question_test
    }

どんな助けでもいただければ幸いです!

4

4 に答える 4

1

MySQL は、SQL コマンドで直接正規表現マッチングをサポートしています。マニュアルを確認してください。

select col from table where col regexp '^h';

( sqlfiddle でこれを参照してください)

于 2012-10-25T18:40:35.420 に答える
0

Mysql-Manualの適切なセクションを読むことをお勧めします。正規表現検索の実行方法が非常に詳しく説明されています。

于 2012-10-25T18:41:34.267 に答える
0

mysqlの正規表現マッチ機能を参照できます。

http://dev.mysql.com/doc/refman/5.0/en/regexp.html

于 2012-10-25T18:42:00.490 に答える
0

分割している X の場合は、次のようになります。

$var = "1234X32X12";

$bits = explode("X", $var);

var_dump( $bits);

array
  0 => string '1234' (length=4)
  1 => string '32' (length=2)
  2 => string '12' (length=2)

でも、X はどんなアルファベットでもいいような気がしますね。

于 2012-10-25T18:45:00.657 に答える