3

フィールド データにコードが含まれる mysql 型 varchar のフィールドがあり、コードは親と子の間のセパレータとしてドット (.) を持つツリー構造のようなものです。

1215には子が1215.001あり、1215.002

そして、これはデータベースの各行のデータです

ID  | kode
1   | 1215
2   | 1215.001
3   | 1215.001.001
4   | 1215.002.001
5   | 1215.002
6   | 1215.002.001

レベル 2 コードを取得するには?
その意味はコード1215.0011215.002

このクエリですでに試しました

select * from `kegiatan` where `kode` LIKE '1215.%';

ただし、すべてのコードは次のように始まります12151215.001.001

4

3 に答える 3

4

正規表現を使用します。

 select * from `kegiatan` where `kode` REGEXP '^1215\.[^\.]+$';

これはすべてに一致します:

 That starts with ( "^" )

 the string "1215.",

 followed by at least one character that is a member of the set "NOT ." ("[^\.]+")

  followed by the end of the string.("$")
于 2012-05-11T09:00:57.207 に答える
2

これには正規表現を使用できます。

select * from `kegiatan` where `kode` REGEXP '^1215.[0-9]+$';

で始まり^1215、ピリオド.が続き、1 つ以上の数値[0-9]+が続き、文字列の末尾が続く項目に一致します$

これは and に一致しますが、 or には一致1215.001しませ1215.00212151215.001.001

それが役立つことを願っています、デイブ

于 2012-05-11T09:02:48.953 に答える