Mysql 我应该费心清理这个查询,还是MariaDB替我处理这个问题?

Mysql 我应该费心清理这个查询,还是MariaDB替我处理这个问题?,mysql,mariadb,Mysql,Mariadb,我正在使用php生成一些MySQL查询。在某些情况下,我的代码会为某些查询生成重复的查询代码,以防出现安全问题。例如,假设我有一个UploadedImages表,其中包含用户上传的图像。它通过引用连接到用户表。当普通用户想要查询该表时,如果他没有管理员权限,我会强制在查询中加入WHERE条件,该条件只检索属于他的图像 由于这种强制包含,有时,我生成的查询会产生重复的结果,其中条件: SELECT * FROM UploadedImages WHERE accounts_AccountId

我正在使用php生成一些MySQL查询。在某些情况下,我的代码会为某些查询生成重复的查询代码,以防出现安全问题。例如,假设我有一个UploadedImages表,其中包含用户上传的图像。它通过引用连接到用户表。当普通用户想要查询该表时,如果他没有管理员权限,我会强制在查询中加入WHERE条件,该条件只检索属于他的图像

由于这种强制包含,有时,我生成的查询会产生重复的结果,其中条件:

SELECT * FROM UploadedImages WHERE 
  accounts_AccountId = '143' AND 
  DateUploaded > '2017-10-11 21:42:32' AND 
  accounts_AccountId = '143'

我应该在运行之前清理这个查询,还是MariaDB会帮我清理?也就是说,如果我没有事先清除相同的重复条件,该查询是否会运行得更慢,或者是否可能导致错误结果?

如果您的问题是我是否应该麻烦清除它?,是的,您应该清理生成该子句的代码,因为它可以多次包含同一子句这一事实表明数据库层并没有抽象到一个特别现代的级别。数据库层应该能够被重新编写以使用不同的数据库提供程序,而不必更改依赖于它的代码。看起来情况并非如此


如果您的问题是添加两次相同的限制是否会减慢查询速度?那么答案是否定的,并不重要

你可以自己回答这个问题:运行解释选择。。。在这两个问题上。如果输出相同,则dup已清除