1

私のsqliteデータベースには次の問題があり、値が保存されており、いくつかの目的でエントリを削除する必要があります。しかし、削除したい行のIDを取得する前に。ID を取得するには、次のクエリを使用しようとしました。

select commonid from TestData where coordinate_x=5.707523 and coordinate_y=6.693941;

座標 y の値が 6.693940 であるため、結果はゼロです。したがって、正しい結果を得るために like を使用することを考えていました。コンマの後の最初の 2 桁の値だけが異なるわけではないため、これは問題ではありません。私は試した:

select commonid from TestData where coordinate_x=5.707523 and coordinate_y LIKE "6.69394%";

これも失敗し、結果はゼロでした。

% の代わりに * を使用できることをインターネットで見つけました。

select commonid from TestData where coordinate_x=5.707523 and coordinate_y LIKE "6.69394*";

残念ながら、これもうまくいきませんでした。

この問題を解決するには、どのように like やその他のコマンドを使用できますか?

4

3 に答える 3

1

できますが、実行する方が賢明です (おそらくより高速です)。

SELECT commonid FROM TestData WHERE coordinate_x=5.707523 AND
    ABS(coordinate_y-6.693945)<0.000005;

また

SELECT commonid FROM TestData WHERE coordinate_x=5.707523 AND
    coordinate_y BETWEEN 6.69394 AND 6.69395;
于 2013-11-14T11:12:09.360 に答える
0

キャラ扱いしてみる

select commonid from TestData 
where coordinate_x=5.707523 
and Cast(coordinate_y as Char(100)) LIKE "6.69394%";
于 2013-11-14T11:03:58.287 に答える