このタイプのセットアップに最適な世界では、数値のみを期待する整数列があります。
しかし、列があり、次のような句varchar
を追加したい場合はどうでしょうか。WHERE
WHERE <value> is NOT a number
本質的に、数字だけではない文字を含むすべての行を選択しています。
これはMySQL用です。
SELECT * FROM `MyTable` WHERE `Column` RLIKE '^[^0-9]*$';
UPDv1:
負の整数を検出するために、さまざまな正規表現を使用できます。
SELECT
'-2' RLIKE '^[^0-9]*$', -- fails
'-1' RLIKE '-[0-9]'; -- succeeds
例えば:
SELECT * FROM `MyTable` WHERE `Column` RLIKE '-[0-9]' OR `Column` RLIKE '^[^0-9]*$';
これでテスト:
SELECT
*
FROM
(
SELECT 'abs 12 x' as `Column`
UNION ALL
SELECT 12
UNION ALL
SELECT -2
UNION ALL
SELECT '-x'
) as `sub`
WHERE
`Column` RLIKE '-[0-9]'
OR
`Column` RLIKE '^[^0-9]*$';
出力:
-2
-x