Не разрешайте всем привилегиям по всем базам данных для пользователя без полномочий root, он небезопасен (и у вас уже есть «root» с этой ролью)
GRANT ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Этот оператор создает нового пользователя и предоставляет выбранные привилегии. IE:
GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
Взгляните на docs , чтобы просмотреть все привилегии подробно
EDIT: вы можете найти дополнительную информацию по этому запросу (журнал в качестве «root»):
select Host, User from mysql.user;
Чтобы узнать, что произошло
Попробуйте этот запрос,
SELECT courses.*, b.STR_CRSE_IDS FROM courses INNER JOIN (SELECT DISTINCT course_id as STR_CRSE_IDS FROM university_schools WHERE univ_id = '2289') AS b ON courses.course_id = b.STR_CRSE_IDS
Нет необходимости создавать пользовательскую строку с помощью GROUP_CONCAT
. Вы можете использовать простой IN
:
SELECT *
FROM courses
WHERE course_id IN (SELECT course_id
FROM university_schools WHERE univ_id = '2289');
Обратите внимание, что с GROUP_CONCAT
вы получите что-то вроде:
IN ('1,2,3,4')
--and I guess you expect:
IN (1,2,3,4)