Най-голямото предизвикателство, пред което често се сблъскваме като човек в базата данни, е да сравним стойността в множество колони. Повярвайте ми, ако нямаше оператори за сравнение, никога нямаше да свършим тази задача. MySQL поддържа много оператори за сравнение като BETWEEN, IN и т.н. LEAST и GREATEST са много удобни, ако искате да сравнявате стойности в много колони.
Тези оператори приемат множество параметри и намират съответно най-малката и най-голямата стойност
Нека създадем този набор от данни
CREATE table testing(num1 int, num2 int, num3 int); INSERT INTO testing(num1,num2,num3) SELECT 456,90,774 UNION ALL SELECT 70,111,4 UNION ALL SELECT 190,87,391;
Сега, когато създадохме набора от данни. Ще изпълним кода, показан по-долу.
SELECT LEAST(num1,num2,num3) as least_value, GREATEST(num1,num2,num3) as greatest_value FROM testing;
След като изпълните кода по-горе, той ще покаже следния набор от резултати. Можете ясно да видите, че резултатният набор вече съдържа две различни стойности – най-малка стойност и най-голяма стойност.
Ако тези оператори не са налични, в крайна сметка ще създадете много CASE изрази, които стават сложни, ако броят на колоните е повече от 3 или може да се наложи да използвате дефинирана от потребителя функция . Но тези оператори са много мощни и лесни за използване.
Кажете ми какво мислите за тази публикация в блога в секцията за коментари по-долу.