私は、カラムがisnull()
関数のように動作する値0を持つかどうかをチェックする関数を探しています。mysql - ゼロ値をチェックするisnull()のような関数
は、これは私がこれまで持っているものです:
CONCAT(
SUBSTRING_INDEX(
SUBSTRING(textCol, 1,
LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y %H:%i'), textCol)-1),
'|',
-1),
SUBSTRING(
textCol,
LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y %H:%i'), textCol),
IFNULL(
LOCATE(/* this will return 0 if it's the last entry */
'|',
textCol,
LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y %H:%i'), textCol)
) - LOCATE(DATE_FORMAT(dateCol,'%d.%m.%Y %H:%i'), textCol),
LENGTH(textCol))))
textCol内のデータは、ソートの各列内の別のCSVファイルとCSVファイルのようなものです。各データセットは|
で区切られ、その中の各データセットは&&
で区切られています。内側のフィールドは、名前、日付、'%d.%m.%Y %H:%i'
、コメントなどです。
dateCol
にある特定のDATETIMEに対応するデータセットを抽出します。問題は、私が探しているものがtextCol
の最後のエントリである場合、LOCATE
(コメントを参照)は0を返します。しかし、それは私のSUBSTRING
を壊すので、エントリの前半だけが返されます。
私はISNULL()
を追加しましたが、もちろんここでは何もしません。私がしたいのは、ISNULL()
と似たようなものがあり、それはISZERO()
であり、Perlの||
のように振る舞います。
私が望むものを達成するには、すべての方法が良いかもしれません。私に教えることをためらってください。
http://www.sqlfiddle.com/#!2/a291d/2 – Quassnoi
ありがとうございました。それはうまくいくでしょう。私はすでに '' SELECT IF(式= 0、 '0の代わりに、式) ''について考えました。しかし、どちらのケースも私の場合はむしろです。 – simbabque