我想做的事
用户将使用发送一个值GET
我会将值存储在名为的变量中$category1
。现在包含值的所有行$category1
将显示。这就像一个搜索系统。
这是我的代码
$stmt = $conn->prepare("SELECT tmdb_movies.movie_title
,GROUP_CONCAT(DISTINCT genres.genres_name SEPARATOR ', ') AS genres
FROM tmdb_movies
JOIN genres ON genres.genres_tmdb_id=tmdb_movies.tmdb_id
WHERE EXISTS (SELECT genres.genres_name FROM genres WHERE genres.genres_name = '$category1');
GROUP BY tmdb_movies.movie_title");
错误:因为 WHERE Exist 行(IDK,我是否应该使用它)
致命错误:未捕获的 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1140 在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列 'DataBaseName.tmdb_movies.movie_title';这与 sql_mode=only_full_group_by 不兼容
现在让我解释一下我的表结构
我有两张桌子
-
tmdb_movies
(它存储电影标题和 tmdb_id)
-
genres
(它存储流派,通过tmdb_id连接)
表格的例子。
tmdb_movies
table
tmdb_id movie_title
1 The_Dark_Night
2 Logan
3 IronMan
genres
table
tmdb_id genres
1 Action
1 Crime
1 Drama
2 Action
2 Drama
3 Action
3 Comedy
在 5.7 中,sqlmode 默认设置为:
ONLY_FULL_GROUP_BY,
NO_AUTO_CREATE_USER,
STRICT_TRANS_TABLES,
NO_ENGINE_SUBSTITUTION
删除该条款ONLY_FULL_GROUP_BY你可以这样做:
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
这假设您需要使用非聚合列进行 GROUP BY。
otherwise i tested your code locally it working perfectly fine.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)