我有一个这样的表:
Id (int),command (text),...
像这样的另一个:
命令id fk (int),子命令id fk (int),...
第二个表中显示的两个列是第一个表中id列的外键。
我想执行一个查询,该查询显示第二个表的两列,但替换为第一个表中命令列的值(文本值)。我如何在MySQL中做到这一点?
如果这个问题令人困惑或呈现错误,很抱歉。
我已经读取了左边的MySQL索引,所以如果我跨两列field1,field2创建一个索引,我可以这样做:
SELECT .. FROM .. WHERE `field1` = 'x' AND `field2` = 'y';
和
SELECT .. FROM .. WHERE `field1` = 'x';
两个都可以吗?我之所以这样问,是因为有时它会按两列查询,有时只按第一列查询。或者在两种情况下都有两个不同的索引会更好?
我有一个关于mysql查询的问题。我将编写一个mysql查询,在两列中搜索2种情况,然后这两列的返回数据应该具有相同的名称。我目前的查询想法如下:
SELECT * FROM `Table`
WHERE (name=test AND `first_col` is NOT NULL) OR (name=test AND `second_column` is NOT NULL)
结果是这样的:
| id | name | first_col | second_col |
+----+-------+---------------+-------------+
| 1 | test
假设我有一个查询,如下所示:
SELECT * FROM users WHERE username = 'test' AND somethingelse = 'test'
我想知道是否有必要为两个列都建立索引以进行优化。MySQL是否首先查找所有值为'test‘的username列,然后在这些结果中搜索带有'test’的其他列?或者是同时发生的?
我在MySQL表中有如下格式的数据。我想在两个不同的条件下检索计数,如下面的查询所示,我想将这些查询组合成一个查询,意思是我希望第一个查询结果在一列中,第二个查询结果在另一列中,如下所示:
预期输出:
count totalcount
--------------------------
3 6
查询:
select count(*) as count from entries where
date between '2014-08-12' and '2014-08-14';
select count(*)
由于某些需求,我正在将数据从mysql转移到其他数据库,这也是mysql兼容的。在这里,映射几乎是1:1,很少有不同的列。我需要运行一个查询来逐列比较数据,并获得数据不匹配的列名行。使用一个工具,可以连接到2个diff数据库和查询。
select * from db1.table1 s, db2.table1 t where s.col1 != t.col1 OR s.col2 != t.col2
这里,需要根据联接条件连接两个表,然后比较不匹配的列值。
如何从MAX(ID), MIN(ID)的MYSQL查询中获得更多的列?
目前,我只获得了两个值:MAX(ID) & MIN(ID):
SELECT MIN(ID), MAX(ID) FROM mytable WHERE mytable.series = 'white' ;
我需要得到类似这样的东西-伪查询:
SELECT column1, column2
FROM mytable
WHERE series = 'white'
AND ID=Max(ID)
'AND GET ME ALSO'
WHERE s
我有一个包含i(主)、s和g列的mysql表。我有两个问题:
INSERT INTO usertable (i, s, g) VALUES('1', '2', '5') ON DUPLICATE KEY SET s=(s*g+'2')/(g+'5'), g=g+'5';
和
SELECT s FROM usertable WHERE i='1' LIMIT 1
是否可以在1查询中同时使用这两个查询?基本上是想减少DB查询的数量。
谢谢
考虑以下两个查询:
SELECT *, MAX(age) AS maxAge FROM someTable ORDER BY age ASC;
SELECT *, 'dummyC' AS dummyC FROM someTable ORDER BY age ASC;
前面的查询返回表的所有行和所有列,外加一个额外的虚拟列。后面的查询只返回一行,即主键最低的行。为什么会这样呢?我该如何解决呢?在Debian5.1中测试,在一些旧的但稳定的MySQL服务器上。
我在表中有5列,当id, address, lat, lng, timesetamp和一行在lat和lng列中都有相似的值时,行被认为是重复的。
MySQL查询
SELECT address, lat, lng FROM table GROUP BY lat, lng
问题:I设法使它只返回这个查询的唯一行。但是,结果似乎是最早插入到数据库中的重复行。如何使MySQL返回最新的复制行?类似于使用最新的timestamp返回重复行的内容
我试图对我的MySQL INNODB表运行一个非常简单的查询:
SELECT *
FROM items
WHERE MATCH (item_title,item_description) AGAINST ('dog')
列item_title和item_description都有一个FULLTEXT索引。
我一直在犯这个错误:
找不到与列列表匹配的全文索引
My:--当我只查询item_title或item_description时,它就能正常工作。但是,当我在一个查询中同时执行这两个操作时,如上面所示,我会得到这个错误。
知道是怎么回事吗?
我在MySQL中有一个有两列的表
id int(11) unsigned NOT NULL AUTO_INCREMENT,
B varchar(191) CHARACTER SET utf8mb4 DEFAULT NULL,
身份是PK。
我需要使用这两种方法之一在查询中进行查找。id in (:idList) or B in (:bList)
如果有一个包含这两列的复合索引,那么这个查询的性能会更好吗?
我准备了一个按日期范围搜索的mysql查询:
select * from active_listings
where open_date >= '$start_date'
AND open_date <='$end_date'
效果很好。
mysql中有两个列: open_date和next_open_date。如何处理包含open_date和next_open_date的range子句。
我试着做:
select * from active_listings
where (open_date,next_open_date) >= &
在MySQL 5.5上,SELECT DISTINCT似乎只需要一列就可以很好地工作。
SELECT DISTINCT type FROM table
WHERE type LIKE 'h%'
LIMIT 5;
返回良好的结果:
type
--------
htm
html
htaccess
但是在尝试SELECT两个或更多列时
SELECT DISTINCT id, type FROM table
WHERE type LIKE 'h%'
LIMIT 5;
重复查询返回失败结果:
id | type
---+--------
1 | htm
3 | htm
我想查询一个mySQL表,以提取两个日期和两次之间的数据。我知道如何使用"between“调用对单个"datetime”列执行此操作,但我的列是一个"date“列和一个"time”列。我在网上找到的所有解决方案都是针对单个datetime列的。
我的范围从15:30的"day1“到15:14的day1+1day
到目前为止,我可以得到以下范围(可以工作):
SELECT time,
close
FROM intraday_values
WHERE date="2005-03-01"
and time bet
我有一个名为industry的php变量,我想要做的是在mysql数据库中查询该变量。但是,mysql数据库有五个列,其中可能存在该变量,如下所示。
工业1工业2工业3工业4工业5
下面是我当前的php代码。
$query = "SELECT * FROM data where listing = 'rec' and industry='$industry'";
是否有一种方法可以针对所有被称为工业的列查询我的php变量?
我想知道,理论中的哪个代码需要更长的时间:
1.
$query = "SELECT Something1, Something2 FROM base WHERE SomeCondition";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
//We do something with $row[0] and row[1]
}
2.
$query = "SELECT Something1 FROM base WHERE SomeCondition&
使用mysql条件查询两个表
如果我将使用一些查询条件,例如我有表,我如何获得具体的查询:
TableA:
column1
row1111
row2222
row3333
row4444
TableB:
column1
rowAAAA
rowBBBB
rowCCCC
rowDDDD
如果我想给出一个条件来检查选中的列,是否有可能是null或空。下面是我的伪代码:
if any column in Table A query is null, I will use query to TableB
else query to TableA
任何建议或意见都是一个很
我有一个包含近10亿条记录的MyISAM表,其中有三个字段: a、b和c。
该表在列a、b和c上按该顺序具有btree多字段索引。分析索引显示,该索引中字段的基数为:
a: 112 (整型)
b: 2694 (整型)
c: 936426795 (日期时间)
这意味着对于a,大约有100个不同的值,对于b,大约有20个不同的值,对于a和b的每个组合,都有大量的c的值。
我想在a的特定值上执行查询,在c上执行范围查询。
select a, b, c from mytable where a=4 and c >= "2011-01-01 00:00:00" and c <
我使用查询
Select t1.name as first, t2.name as second From products t1, products t2
它创建了两个列,如下所示。(A、B是作解释用途)
在查询之前
-name-
A
B
C
D
E
查询后
-first- -second-
A A
B A
C A
D A
E A
A B
B B
C B
D B
E B
如何检查第一列的一行是否与第二列相似?
更新
我运行mySQL
与之相似,我的意思是