我有一個新聞腳本,它在主頁上按段落分割新聞。我希望用戶輸入一個數字,然後在該段落中刪除新聞。該號碼也存儲在數據庫中。如果第三個參數爲NULL,請不要使用SUBSTRING_INDEX
我當前的代碼:
SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1)
用戶也應該能夠留下領域的空白,以顯示整個文本。問題:仍然只有一個parahraph,因爲NULL + 1 = 1.
有沒有人有更好的方法來做到這一點?
我有一個新聞腳本,它在主頁上按段落分割新聞。我希望用戶輸入一個數字,然後在該段落中刪除新聞。該號碼也存儲在數據庫中。如果第三個參數爲NULL,請不要使用SUBSTRING_INDEX
我當前的代碼:
SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1)
用戶也應該能夠留下領域的空白,以顯示整個文本。問題:仍然只有一個parahraph,因爲NULL + 1 = 1.
有沒有人有更好的方法來做到這一點?
這是很好的在你的選擇/更新使用/插入到以下結構:
if(newsShortbreaks is not null, SUBSTRING_INDEX(newsText, "\n", newsShortbreaks + 1), newsText)
所以在情況下,當newsShortbreaks =null
你剛纔的新聞稿。
在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了,但我會用ravnur的方式,因爲短小。謝謝! – sascha 2011-12-26 09:10:22