A better (more normalized) structure would be
[code]user
id, name
permission
id, name
user_permission
user_id, permission_id[/code]
Then you can do
SELECT u.*
FROM `user` AS u
LEFT JOIN user_permission AS up ON up.user_id = u.id
WHERE up.permission_id = 1
[code]CREATE TABLE user
(
id
int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name
varchar(255) NOT NULL
);
INSERT INTO user
(name
)
VALUES
(‘Lewis’),
(‘Tom’);
CREATE TABLE permission
(
id
int NOT NULL AUTO_INCREMENT PRIMARY KEY,
name
varchar(255) NOT NULL
);
INSERT INTO permission
(name
)
VALUES
(‘Access to page 1’),
(‘Access to page 2’),
(‘Access to page 3’);
CREATE TABLE user_permission
(
user_id
int NOT NULL,
permission_id
int NOT NULL
);
INSERT INTO user_permission
(user_id
, permission_id
)
VALUES
(1, 1),
(1, 2),
(2, 2),
(2, 3);
[/code]