mysql - 这个简单的查询有什么问题?

标签 mysql select count

我昨天做了一个非常简单的查询,但今天早上我不记得我是怎么做的,而且我尝试的任何方法都不起作用。

我想做一个简单的SELECT COUNT(*),然后更新表TEST。我们想知道列 start (table1) 中的值有多少位于 txStart 列和 txEnd 列(来自表 TEST)中的值之间。

单独使用 SELECT COUNT(*) 效果很好。

mysql> SELECT COUNT(*) FROM table1, TEST where table1.start BETWEEN TEST.txStart AND TEST.txEnd;
+----------+
| COUNT(*) |
+----------+
|    95149 |
+----------+
1 row in set (0.03 sec)    

更新从未发生过。

 mysql> UPDATE TEST 
       SET rdc_1ips =  
       SELECT COUNT(*) FROM table1, TEST WHERE table1.start between TEST.txStart AND TEST.txEnd;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT(*) FROM table1, TEST WHERE table1.start between TEST.txStart A' at line 1

这里是table1和表TEST的预览

mysql> SELECT * from table1 limit 2;
+----+--------+------+---------+---------+------+-------+
| id | strand | chr  | start   | end     | name | name2 |
+----+--------+------+---------+---------+------+-------+
|  1 | -      | 1    | 2999997 | 3000096 | NULL | NULL  |
|  2 | +      | 1    | 2999998 | 3000097 | NULL | NULL  |
+----+--------+------+---------+---------+------+-------+


mysql> SELECT * FROM TEST;
+------+-----------+--------------+-------+---------+---------+----------+
| chr  | pos_start | name         | name2 | txStart | txEnd   | rdc_1ips |
+------+-----------+--------------+-------+---------+---------+----------+
| 1    |   3204575 | NM_001011874 | Xkr4  | 3204562 | 3661579 |        0 |
+------+-----------+--------------+-------+---------+---------+----------+

最佳答案

将子选择放在括号中。 另外,我会给内部“测试”表一个别名(只是为了确定)

SET rdc_1ips = 
   (SELECT COUNT(*) FROM table1, TEST t2 
    WHERE table1.start between t2.txStart AND t2.txEnd)

但我不确定即使语法正确,这是否会起作用。当从要更新的同一个表中进行选择时,MySQL 有一些令人讨厌的限制。

关于mysql - 这个简单的查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298034/

相关文章:

javascript - jQuery:如何将鼠标悬停事件放在由ajax生成的标签选择上

python - Pandas 的每日频率计数

java - 用字符串方法计算单词?

SQLite 每小时订单数

php图片上传mysql数据库

php - 在一个查询中检索所有行或单独检索每一行的效率差异?

mysql - 如何查询我的数据库并将其输出到 Google 表格,以便有人可以编辑此数据,然后将其反射(reflect)回 MySQL?

php - 通过php从Mysql数据库中选择数据并随机显示其中的一些数据

java - 用于序列化 Base64 编码的 Java 对象的 LONGTEXT 或 BLOB

sql - 如何求两个选择的总和