我有一个新闻脚本,可以按主页上的段落切换新闻。我希望用户输入一个数字,然后应该删除新闻。该号码也存储在数据库中。
我目前的代码:
SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1)
用户还应该能够将该字段留空,以显示整个文本。问题:仍然只有一个parahraph因为NULL + 1 = 1。
有没有人有更好的方法来做到这一点?
答案 0 :(得分:3)
在case statement中使用SUBSTRING_INDEX
,只在某个参数不为空时才接受子字符串。
类似的东西:
SELECT
CASE WHEN @newsShortbreaks IS NOT NULL
THEN SUBSTRING_INDEX(newsText, "\n", @newsShortbreaks + 1)
ELSE newsText
END
FROM MyTable
我目前只有一个MS SQL Server实例,但我相信这种通用方法可以在MySql中使用。
答案 1 :(得分:1)
最好在您的select / update / insert中使用以下结构:
if(newsShortbreaks is not null, SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1), newsText)
所以如果newsShortbreaks =null
只获得newsText。