確認するにはどうすればよいvalue IS NOT NULL AND TRIM(value) != '' AND value != 0
ですか?
チェックする'string' != 0
と常にfalseが返されるため、機能しません。
クエリする列のタイプを知らないジェネリッククエリ用です。
私は次のようなことをする必要があります(value IS NUMERIC TYPE AND value != 0)
value
文字列、日付、時刻、blob、数値などです。
おそらくCAST(value AS int) <> 0
?
列タイプの知識がなくても、正規表現を使用して、文字列または番号の列データに基づいて続行するかどうかを決定できます。
value IS NOT NULL AND
IF(value REGEXP '^-?[0-9]+(\.[0-9]+)?$', value <> 0, TRIM(value) <> '')
正規表現の結果に応じて、と比較するか、と比較し0
ます''
。
含む警告文字列'0'
は空と見なされますが、MySQL Webサイトをトロールした後、適切な回避策を見つけることができませんでした。
レコードセットを使用して SQL データの移行を行うときに、以前にこのようなことをしたことがあります。
if trim(fields(0).value & "") > "" then '値がある
したがって、null の場合は空の文字列になり、null でない場合はトリミングされた文字列になります。最も効率的な方法...おそらくそうではありませんが、機能します。