2

Just a curiosity question. Why phpMyadmin adds WHERE 1 to every statement in the SQL query input box?

For example,

 SELECT * FROM User WHERE 1
4

2 回答 2

2

在生成动态查询时,总是有一个WHERE子句比有一个算法在不需要时删除它更容易。这意味着“一切”,如果您在自己的查询中添加子句,WHERE 1phpMyAdmin 将不会附加它。WHERE

phpMyAdmin 可能通过连接字符串来创建它的查询,所以它会生成 say $selectStatement$whereStatement然后$limitStatement将它们加在一起。我不知道它是否仍然这样做,但它总是用来添加一个LIMIT子句,即使在不需要时也是如此。

这只是在 PHP 中构建 SQL 语句的一种简单而全面的方法,完全不会影响您的查询结果。

于 2013-04-21T15:06:19.747 回答
1

我的猜测是它是一个有用的指南。不幸的是,我犯了几个错误,忘记添加一个WHERE子句,最后不得不疯狂地恢复备份,然后每个人都意识到我重置了他们所有的密码,而不仅仅是一个……哎呀!

把它放在那里没有任何功能性目的,但在你像我一样搞砸之前,它可能是一个有用的提醒。

于 2013-04-21T15:14:25.250 回答