我正在寻找一个函数来检查列是否具有与该函数类似的值 0 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'
和评论。
我想提取与我进入的某个 DATETIME 相对应的数据集dateCol
。问题是,如果我要查找的条目是 中的最后一个条目textCol
,则LOCATE
(请参阅注释)返回 0。但这会破坏我SUBSTRING
的,因此只返回条目的前半部分。
我添加了一个ISNULL()
,这当然在这里没有做任何事情。我想做的是有一些类似于 do ISNULL()
a的东西ISZERO()
,很像||
Perl 中的运算符的行为。
可能有一种更好的方法来实现我想要的。请不要犹豫告诉我。