Bạn nên bình thường hóa điều này.
3 Bảng:
Image {image_id, name}
Colors {color_id, red, green, blue, alpha}
ImageHasColor {image_id, color_id, number_of_times_appeared}
Việc chèn dữ liệu phải đơn giản, sử dụng ...insert_id
hàm để lấy id từ hàng bạn vừa chèn.
Chọn với các liên kết như:
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
Kiểm tra liên kết này để biết cách chuyển đổi màu HEX thành giá trị RGB: http://bavotasan.com/2011/convert-hex-color-to-rgb-using-php/
Tìm kiếm top 10 bức ảnh thực sự màu đỏ:
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
Tìm kiếm hình ảnh khá đen:
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