SQL для Вікіпроектів/Фільтрування

Матеріал з Вікіпідручника

Для виводу об’єктів, значення колонки в яких дорівнює заданому значенню, за допомогою SQL

SELECT * FROM 
    НАЗВА_БАЗИ.НАЗВА_ТАБЛИЦІ
WHERE
    НАЗВА_КОЛОНКИ = ЗАДАНЕ_ЗНАЧЕННЯ

Для виводу об’єктів, значення колонки в яких більше заданого значення

SELECT * FROM 
    НАЗВА_БАЗИ.НАЗВА_ТАБЛИЦІ
WHERE
    НАЗВА_КОЛОНКИ > ЗАДАНЕ_ЗНАЧЕННЯ

Для виводу об’єктів, які задовільняють декільком умовам одночасно

SELECT * FROM 
    НАЗВА_БАЗИ.НАЗВА_ТАБЛИЦІ
WHERE
    УМОВА1 AND УМОВА2 AND УМОВА3

Категорії[ред.]

в яких немає ні сторінок, ні підкатегорій, ні файлів
SELECT * FROM ukwikibooks_p.category
WHERE
    cat_pages   = 0 AND 
    cat_subcats = 0 AND
    cat_files   = 0


в яких є сторінки, відсортовані за кількістю сторінок
SELECT * FROM ukwikibooks_p.category
WHERE 
    cat_pages > 0  
ORDER BY  
    cat_pages DESC


в яких є підкатегорії, відсортовані за кількістю підкатегорій
SELECT * FROM ukwikibooks_p.category
WHERE 
    cat_subcats > 0  
ORDER BY  
    cat_subcats DESC


в яких є файли, відсортовані за кількістю файлів
SELECT * FROM ukwikibooks_p.category
WHERE 
    cat_files > 0
ORDER BY  
    cat_files DESC

Зображення[ред.]

Які завантажив користувач Ilya
SELECT img_name, img_timestamp, img_user_text 
FROM ukwikibooks_p.image
WHERE 
    img_user_text = 'Ilya'


В яких і ширина і висота менше або дорівнює 300 пікселям
SELECT 
	img_name, img_width, img_height
FROM 
	ukwikibooks_p.image
WHERE     
	img_width <= 300 AND
	img_height <= 300

Сторінки[ред.]

Які є перенаправленнями
SELECT page_title FROM ukwikibooks_p.page
WHERE 
	page_is_redirect = 1
ORDER BY 
	page_title


Які є сторінками обговорень статей
SELECT page_title FROM ukwikibooks_p.page
WHERE 
	page_namespace = 1
ORDER BY 
	page_title


Які є сторінками обговорень користувача
SELECT page_title FROM ukwikibooks_p.page
WHERE 
	page_namespace = 3
ORDER BY 
	page_title

Користувачі[ред.]

Що зареєструвалися у 2016 році і зробили принаймні одне редагування
SELECT user_name, user_editcount  
FROM ukwikibooks_p.user
WHERE 
    YEAR(user_registration) = 2016 AND
    user_editcount > 0  
ORDER BY
    user_editcount DESC