Cách sử dụng BITWISE AND (&) trong mysql để so sánh string

Chào mấy anh, khi làm bài trên codefight thì em có gặp một bài như thế này. Cho bảng:

Tables Are
Buddy reading,swimming,drawing,acting,dancing,videogaming
Dennis swimming,cooking,fishkeeping

với yêu cầu lọc ra tên những người có sở thích là cooking và reading. Sẽ dễ dàng nếu dùng LIKE nhưng đề lại yêu cầu phải dùng &. Chỉ được chỉnh sửa trong dấu … từ query cho sẵn:

CREATE PROCEDURE interestClub()
SELECT name
FROM people_interests
WHERE interests & ... AND interests & ...
ORDER BY name

Và đáp án là thay dấu … bằng 1 và 8. Anh nào rảnh về toán tử trên bit giúp em giải thích với.
Cảm ơn ạ!

Bản chất của SET (kiểu của cột interests) là bitfield.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?