sql >> Databáze >  >> RDS >> Mysql

Návrh databáze pro uložení barevného vzoru obrázku v MySQL pro vyhledávání obrázku podle barvy

Měli byste to normalizovat.

3 tabulky:

Image {image_id, name}
Colors {color_id, red, green, blue, alpha}
ImageHasColor {image_id, color_id, number_of_times_appeared}

Vkládání dat by mělo být jednoduché, použijte ...insert_id funkcí získat id z řádku, který jste právě vložili.

Vyberte pomocí spojení jako:

SELECT * FROM
Image i
JOIN ImageHasColors h
ON i.image_id = h.image_id
JOIN Colors c
ON c.color_id = h.color_id
ORDER BY i.image_id

Podívejte se na tento odkaz, jak převést HEX barvu na hodnoty RGB:http://bavotasan.com/2011/convert-hex-color-to-rgb-using-php/

Vyhledejte 10 opravdu červených obrázků:

SELECT * FROM
Image i
JOIN ImageHasColors h
ON i.image_id = h.image_id
JOIN Colors c
ON c.color_id = h.color_id
WHERE c.red > 200
AND   c.green < 50
AND   c. green < 50
ORDER BY h.number_of_times_appeared
LIMIT 10

Hledat spíše černé obrázky:

SELECT * FROM
Image i
JOIN ImageHasColors h
ON i.image_id = h.image_id
JOIN Colors c
ON c.color_id = h.color_id
WHERE c.red < 30
AND   c.green < 30
AND   c. green < 30
ORDER BY h.number_of_times_appeared
LIMIT 10


  1. jak změnit datum na čas v oracle 10g

  2. AKTUALIZACE pomocí SUM() v MySQL

  3. SQL - tisk mnoha slov mezi každý sloupec s mnoha podmínkami

  4. Export BLOB z databáze MySQL do souboru pouze s SQL