色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql find_in_set 返回空

錢諍諍1年前11瀏覽0評論

在MySQL中,find_in_set函數用于在一個列表中查找給定的值。指定值存在于列表中時,函數會返回值的位置,否則返回0。但是,在某些情況下,find_in_set函數會返回空值,這可能會導致一些問題。

例如,假設您有以下數據表:
CREATE TABLE fruit (
id INT,
name VARCHAR(20),
categories VARCHAR(50)
);
INSERT INTO fruit VALUES
(1, '蘋果', '綠色,紅色,酸甜'),
(2, '香蕉', '黃色,微甜'),
(3, '橙子', '橙色,酸甜'),
(4, '梨子', null);

如果您想查找顏色為“紅色”的水果,則可以使用以下查詢語句:

SELECT * FROM fruit WHERE find_in_set('紅色', categories) >0;

然而,當列表中的值為空時,find_in_set函數會返回空值,而不是0。例如,如果您想找到沒有分類的水果,則可以嘗試以下查詢:

SELECT * FROM fruit WHERE find_in_set(null, categories) >0;

但是,這個查詢實際上不會返回任何結果。這是因為find_in_set函數將null視為“未知值”,它不是列表中的有效值。因此,需要使用is null來查找未定義值:

SELECT * FROM fruit WHERE categories is null;

在使用find_in_set函數時,一定要注意值列表是否為空,否則會出現意想不到的結果。