2016-04-05 10 views
0

私は約20000のエントリの非常に大きなデータベースを持っています。エントリの中には、6〜7つのnumverを持つ座標が含まれていますが、フィールド "coordinates"ではなく、 "remarks"のフィールドに含まれています。データベース[SQL]の座標を含む行を検索

私は、備考欄にcoordniatesを持つすべてのエントリを検索したいと思います。

今まで、私は、私のデータベースへの接続をしたカーソルを定義し、以下のappearenceのクエリを試してみました:

query = " SELECT INDEX 
      FROM GeoTest.dbo.Tabelle_Bohrung 
      WHERE BO_BEMERKUNG NOT LIKE '%[^0-9]%' " 

INDEXは、すべてのエントリのための(個別の)IDです。

私は座標をキャッチするために正規表現を使うべきだと思います。

私は本当に私が望むものをキャッチするために私のクエリをフレーズする方法を知りません。

私はすべての提案と助けに本当に感謝しています!だからここ

が発言フィールドの元の例である:私の場合は

 ID  remarks 
LINE1 ID 1 - 2 Bohrungen vorhanden - Koordinate 2. Bohrung: 524'656/158'307 
LINE2 ID 2 Schichtbeschrieb siehe BL 16.Z.03 
LINE3 ID 3 - Koordinate 2. Bohrung 510'055/165'687 
LINE4 ID 4 - Bohrprofil siehe Kataster - Nummer 2944 
LINE5 ID 5 - Tiefe der Bohrung 60 m 

、私は私のクエリでLINE1とLINE3のIDを取得したいと思います。

+0

を意味しますか「2900915.47」または「2900915.47,1369025.59」または「2900915.47」、「1369025.59」、「8566627.53'」? '[0-9] + [。] [0-9] +)+ $' 'や' REGEXP 'で 'NOT LIKE'%[^ 0-9]% ''を置き換えてみてください。^0-9] + [。] [0-9] +(、[0-9] + [。] [0-9] +)* $ '' –

+0

まずはPythonコードは無関係です。あなたがSQLの部分だけに焦点を当てれば、質問はより簡単になります。第二に、たとえどんなパターンがそのフィールド上の座標であるか分からなければ、どうすればあなたを助けることができますか?いくつかのサンプルを含めると、わかりやすくなります。 [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

+0

私が探している座標は:2900915.47または1369025.59または2850080または136002または1350750など... – Hardinger

答えて

0

LIKEを使用している場合は、実際に正規表現を使用していません。リテラル(明らかに)、charクラス(代替文字/範囲は[])、ワイルドカード(_)、アンカーリング(デフォルトでアンカーされます):%はアンカー解除に使用され、.*のようにも使用できます中間)。

あなたは確実にしたい場合はスペースで区切っ座標で2つの数字は(小数部分と、それぞれが'で示される)がある/を埋め、あなたが行うことができます:あなたは `のようなレコードを持っているLIKE '%[0-9]\'[0-9]%/%[0-9]\'[0-9]%'

関連する問題