0
昨天我做了一個非常簡單的查詢,但今天早上我不記得我是如何做到的,而且我嘗試過的任何操作都不起作用。這個簡單的查詢有什麼問題?
我想做一個簡單的SELECT COUNT(*)
,然後更新表TEST。我們想要從列開始有多少個值(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)
UPDATE
從未發生過。
mysql> UPDATE TEST
SET rdc_1ips =
SELECT COUNT(*) FROM table1, TEST WHERE table1.start between TEST.txStart AND TEST.txEnd;
ERROR 1064(42000):你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊正確的語法使用近「SELECT COUNT(*)FROM表1,測試,其中TEST.txStart A之間table1.start」在行1
這裏是一個預覽表1和表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 |
+------+-----------+--------------+-------+---------+---------+----------+
此外,如果你知道一種方式來查找在MySQL的過去查詢.....讓我知道〜! – madkitty
如何使用括號'SET rdc_1ips =(SELECT COUNT(*)FROM table1,TEST WHERE table1.start TEST.txStart AND TEST.txEnd之間)? – Usman
當您將SELECT放在括號中時它有幫助嗎? –