Moim zrozumieniem zlecy jest to, że zwraca pierwszą wartość null. Używam łączenia w poniższej instrukcji SELECT, ale wciąż zwraca NULL. Jak mogę to naprawić, czy jest lepszy?

Ustaw nowy

DB Fiddle: https://dbfiddle.uk/?rdbms=mysql_8.0& ;fidelddle = ACA780246B24EC4CCE8D9978C1113D26.

0
Kburgen9 8 czerwiec 2021, 20:50

2 odpowiedzi

Najlepsza odpowiedź

Wygląda na to, że masz źle zrozumienie z funkcją {x0}}! Możesz użyć wielu kolumn jako parametr podczas korzystania z tej funkcji, takiej jak COALESCE(col1, col2, col2). Zwraca pierwszą wartość null w przypadku użycia więcej niż jednej kolumny jako parametru. Aby zrozumieć, patrz SQL tutaj

Więcej szczegółów tutaj

Według twojego komentarza myślę, że szukasz tego:

SELECT animals from list where animals is not null ORDER BY RAND() LIMIT 1
1
Md. Suman Kabir 8 czerwiec 2021, 18:13

Nie potrzebujesz COALESCE().
Wystarczy odfiltrować NULL s z tabeli {x2}}:

SET NEW.random = ( SELECT animals
                   FROM list
                   WHERE animals IS NOT NULL
                   ORDER BY RAND() LIMIT 1 );

Zobacz wynik w Twoim Fiddle

0
forpas 8 czerwiec 2021, 18:13