草庐IT

where-clause

全部标签

sql - 使用 SELECT...WHERE id IN (...),按 IN() 排序结果?

这个问题在这里已经有了答案:关闭12年前.PossibleDuplicate:OrderingbytheorderofvaluesinaSQLIN()clause使用如下查询:SELECT*FROMimagesWHEREidIN(12,9,15,3,1)是否可以按IN子句的内容对结果进行排序?我正在寻找的结果是这样的:[0]=>Array([id]=>12[file_name]=>foo)[1]=>Array([id]=>9[file_name]=>bar)[2]=>Array([id]=>15[file_name]=>baz)... 最佳答案

mysql - 为什么 Rails 使用带范围的 where 子句哈希语法将 `OR 1=0` 添加到查询中?

我正在从事的项目是在RDS上使用MySQL(特别是mysql2gem)。当我在where语句中使用包含范围的条件散列时,我的查询中添加了一些奇怪的内容。User.where(id:[1..5])和User.where(id:[1...5])分别产生如下查询:SELECT`users`.*FROM`users`WHERE((`users`.`id`BETWEEN1AND5OR1=0))SELECT`users`.*FROM`users`WHERE((`users`.`id`>=1AND`users`.`id`查询工作得很好,因为ORFALSE实际上是一个空操作。我只是想知道为什么Rail

mysql - 与括号比较时有什么区别 : WHERE (a, b)=(1,2)

我偶然发现了MySQL中的以下(有效)查询(在将=替换为IN时也适用于Oracle/MSSQL):SELECT*frommytableWHERE(a,b)=(1,2)这是一样的SELECT*frommytableWHEREa=1andb=2我认为MySQLdocs中的定义在这里:simple_expr:[...]|(expr[,expr]...)[...]这叫什么?使用它有什么优缺点吗? 最佳答案 当需要使用IN()将多个列与多个值组合进行比较时,它会非常方便:SELECT*FROMYourTableWHERE(col1,col2)

MySQL 左连接 WHERE table2.field = "X"

我有以下表格:页面:+------------+--------------+------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+------------+--------------+------+-----+---------+----------------+|page_id|int(11)|NO|PRI|NULL|auto_increment||type|varchar(20)|NO||NULL|||categories|varchar(255)|NO||NULL|||title

带有--where子句的mysqldump不起作用

mysqldump-t-uroot-pmytestdbmytable--where=datetimeLIKE'2014-09%'这就是我正在做的事情,它会返回:mysqldump:Couldn'tfindtable:"LIKE"我正在尝试返回列datetime为like2014-09表示“所有九月行”的所有行。 最佳答案 您可能需要使用引号:mysqldump-t-uroot-pmytestdbmytable--where="datetimeLIKE'2014-09%'" 关于带有--w

mysql - SQL在where子句中使用子选择中的列

我有一个看起来像这样的查询:SELECTa,b,c,(SELECTdfromBlimit0,1)asdFROMAWHEREd>=10当我在没有where子句的情况下运行查询时,我得到了我想要的结果,但是当我添加了where子句时,查询失败了。有没有人建议如何解决这个问题? 最佳答案 您不能在WHERE子句中使用列别名。因此,您可以将查询包装在外部选择中并在那里应用您的条件SELECT*FROM(SELECTa,b,c,(SELECTdFROMBLIMIT0,1)dFROMA)qWHEREd>=10或者您可以在HAVING子句中引入该

php - MySQL where 子句等于任何东西 (SELECT * WHERE col = ANY_VALUE)

我想在MySQL中创建一个具有可选值的查询。当指定值时,查询将按该值过滤,当值不是时返回所有行。想法是这样的:publicfunctiondoQuery($item='ANY_VALUE'){$query="SELECT*FROMtableWHEREitem=?";db->fetchAll($query,array($item))...}doQuery();//ReturnseverythingdoQuery($item='item1');//Returnsonlyrowswhereitem='item1'有没有一种简单的方法可以做到这一点,而无需根据$item的值创建两个查询字符串?

php - 在 mysqli 准备好的语句中使用数组 : `WHERE .. IN(..)` query

这个问题在这里已经有了答案:Howtobindanarrayofstringswithmysqlipreparedstatement?(6个回答)关闭7个月前。假设我们有一个查询:SELECT*FROMsomewhereWHERE`id`IN(1,5,18,25)ORDERBY`name`;以及要获取的ID数组:$ids=array(1,5,18,25)对于准备好的语句,它是adviced准备一个语句并多次调用它:$stmt=$mysqli->prepare('SELECT*FROMsomewhereWHERE`id`=?;');foreach($idsas$id){$stmt->bi

mysql - brew 服务 : where to edit configuration?

Brew服务已经为mysql安装了这个plist文件。~$brewserviceslistNameStatusUserPlistmysql56startedmh/Users/mh/Library/LaunchAgents/homebrew.mxcl.mysql56.plist此文件是否可以安全编辑(即brew会覆盖此处所做的更改)?我应该使用另一种方法来修改文件吗? 最佳答案 Formula附带的所有.plist文件都可以在Cellar目录中找到。例如homebrew.mxcl.mysql.plist在/usr/local/Cell

mysql - 为每一行使用多个 'where' 子句更新多行

我正在尝试像这样更新我的表格:UpdateMyTableSETvalue=1WHEREgame_id=1,x=-4,y=8SETvalue=2WHEREgame_id=1,x=-3,y=7SETvalue=3WHEREgame_id=2,x=5,y=2我可以做一个foreach()但这会发送超过50个单独的查询,这非常慢。这就是为什么我希望将其合并为1个大查询。(我确实为每一行使用了一个id,但game_id、x和y的组合是我用什么来识别我需要的行。)此处描述的codeIgniter的update_batch()函数:UpdatebatchwithCodeIgniter很有帮助并且几乎