我有一个Mysql查询:
SELECT created_at as date FROM table
因此,我为created_at列创建了一个别名。现在我想在WHERE子句中使用这个别名:
SELECT created_at as date FROM table WHERE date = 'xxxx-xx-xx'
这不起作用。Mysql希望我使用真实的列名。有没有办法按照我想要的方式去做?
背景:我正在从多个表中选择记录,并使用UNION将它们联合起来。所有的表都有一个日期列,但在每个表中它的名称都不同。但是我想对美联航的记录执行WHERE,因此我需要始终使用相同的列名
问题
我有一个大约200万行( 115 MB)的表,它即将变得更大。当在表上运行一些实用程序脚本时,我注意到我的一个查询花费了很长时间(15+秒),而一个几乎相同的查询用了不到半秒的时间。以下是查询:
查询1:
SELECT `id` FROM `my_table` WHERE `my_column`='test' ORDER BY `id` LIMIT 28000, 1000
Execution time: 0.204 seconds
查询2:
SELECT `id` FROM `my_table` WHERE `my_column`='test' ORDER
我在使用这个查询时遇到了问题,该查询根据不同表中的回复数量对论坛主题进行排序。我在where之前尝试了Left join,但是在while循环中遗漏了一些数据。
SELECT forum_topics.*, COUNT(forum_posts.comment_id) AS replies
FROM forum_topics
WHERE forum_topics.subcat_id = '$subcatid'
LEFT JOIN forum_posts
ON forum_topics.topic_id=forum_posts.topic_num
ORDER BY re
我正在尝试获取已售出至少6次的产品的定义数量,但mysql给了我一个未知的列,但如果该值是从WHERE子句中取出的,那么它将按相同的值进行排序。
这是我的问题。
SELECT
ps.product_id,
(SELECT IFNULL(SUM(s.product_quantity),0) FROM product_stock s WHERE ps.product_id = s.product_id AND s.product_quantity > 0) AS stock,
SUM(ps.product_quantity) AS vendidos
FROM product_sold
我试图使用子选择列出表的内容,并只选择与我的WHERE子句匹配的内容:
SELECT DISTINCT `torrentItem` as ti,
(SELECT COUNT(*) FROM votes WHERE `torrentItem` = ti AND `voteType` = 0) AS `badVotes`,
(SELECT COUNT(*) FROM votes WHERE `torrentItem` = ti AND `voteType` = 1) AS `goodVotes`,
(SELECT TIMESTAMPDIFF(WEEK,(SELECT MAX(`date`) FR
我不知道为什么不管用..。我试图“按”一个创建的变量进行排序,如下所示:
mysql_query("SELECT *,DATE_FORMAT(FROM_UNIXTIME(banfrom), '%d/%m/%Y') as time FROM ab_list WHERE time = '24/08/2013' ORDER BY banfrom DESC LIMIT 0,50");
或,
$hr = date('d/m/Y');
mysql_query("SELECT *,DATE_FORMAT(FROM_UNIXT
我有以下声明
$result = mysql_query("SELECT * from rests ORDER BY name asc WHERE flag = '1' LIMIT 0 , 20");
我收到以下错误
Invalid query: 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 'WHERE flag = '1
我有一个SQL查询,如下所示。
SELECT A.a, count(B.id)
FROM TableA A inner join TableA B on A.referId = B.id
WHERE A.id in (123,2424,232...)
GROUP BY A.id
执行此查询时
行首先使用where子句进行筛选,然后执行联接,或者
首先执行联接,然后对行进行筛选?
我正在MySQL服务器上运行这个查询。假设TableA包含百万行。有没有其他有效的方法来写这个查询?
我正在尝试运行SQL查询,如下所示:
$sql = mysql_query("select * from users where new_mail = 0 OR new_events = 0 and emailed = 1") or die(mysql_error());
while($r=mysql_fetch_array($sql))
{
mysql_query("update users set emailed = 0 where username='{$r['username']}'") or die(mysql_
我正试图得到一个从用户上次登录到现在的评论数量的计数。我正在使用knex,但是我试图让它在一个语句中工作,而不是首先设置在MYSQL的顶部。
这是我正在寻找的,但它没有返回正确的计数。语句似乎并没有在WHERE语句中使用@lastlogin变量,但我不知道原因。
SELECT Count(*), @lastlogin := (SELECT DATE(userLastLogin) FROM users WHERE users.UID = 50) AS login
FROM reviews
RIGHT JOIN schools on schools.SID = reviews.schoolID
W
我需要从“最新”(即最高记录id)记录中获取字段每个值的值(本例中为server_name)。
我已经在server_name和id上添加了一个server_name索引。
我的第一次尝试花了几分钟的时间。
SELECT server_name, state
FROM replication_client as a
WHERE id = (
SELECT MAX(id)
FROM replication_client
WHERE server_name = a.server_name)
ORDER BY server_name
我的第二次尝试用了0.001次。
SELECT r
mysql子查询中的结果顺序是否影响实际查询的顺序?我试过了,但没有取得真正的结果,因为有时看起来是这样,有时却没有。
例:
SELECT name FROM people WHERE pid IN (SELECT mid FROM member ORDER BY mdate)
在这种情况下,"order“-clause会影响结果的顺序吗?
谢谢。
我正在尝试使多个表选择ID = variabile所在的位置。
示例代码如下,我相信它应该工作,但不知何故,我有一些错误的语法。
SELECT c.id, c.firstname, c.surname, c.email, c.process, c.search_work, c.note,
group_concat(DISTINCT ce.enforcement) as enfor,
group_concat(DISTINCT cc.city) as city
FROM candidates AS c
LEFT JOIN candidates_language AS cl ON c.id
我为用户提供了一个MySQL表,如下所示(其中一部分):
user_id,user_name,user_password,
现在我想得到所有的用户,其中包含"foo“。我使用以下查询:
SELECT user_id, user_name FROM users WHERE user_name LIKE '%foo%'
问:默认情况下,当我没有ORDER子句时,类-查询的结果如何?
我想从MySQL数据库中获取数据,但由于查询不正确,我得到了一个异常。我想通过使用用户的用户名作为条件来获取特定用户的数据。 下面是我使用的查询: String userName = "student1" ;
String query = "SELECT * FROM `result` ORDER BY score DESC WHERE username = " +userName; 这是我得到的一个例外。 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error
select id, name from myTable;
或
select id, name from myTable where name like "%";
Mysql是否优化了第二个查询?
更新: myTable只有三列id(主键),myTable中的行的名称和年龄都在(5-10)k范围内。
如果我们在列"name“上创建一个索引呢?
假设我有一个很长、开销很大的查询,其中充满了条件,正在搜索大量的行。我还有一个特殊的条件,比如公司id,它将大大限制需要搜索的行数,将搜索行数从数十万缩小到几十。
我是否这样做对MySQL性能有影响:
SELECT * FROM clients WHERE
(firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND
(firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar) AND
company = :u
我在使用mysql,这是查询-
mysql> select count(*) from payments as Payment WHERE `Payment`.`fordate` BETWEEN '2015-11-28 00:00:00' AND '2015-12-31 23:59:59';
+----------+
| count(*) |
+----------+
| 187216 |
+----------+
1 row in set (0.16 sec)
mysql> explain select count(*) from payme
早上好,我有疑问,如果有人会知道..。这是个棘手的问题。我有两栏
date active
20180211 0
20180100 0
20171208 1
我需要先按active 1 + date排序,然后再按active 0 + date排序.
预期结果:
date active
20171208 1
20180211 0
20180100 0
无问题工作解决方案
SELECT * FROM xy ORDER BY active DESC, date DESC
现在我需要实现子句,其中,因为会有xy结果,这里有问题。
SELE
我需要在页面中显示从mysql检索到的数据。我的密码是:
jquery:
$('#search').on('click', function() {
alert($('.search_word').val());
var data_to_php = $('.search_name:visible').val(); //take the text only from the visible search box
alert(data_to_php);
//////
具有以下SQL
SELECT
u.user_id AS user_id,
u.user_name AS user_name,
d.user_data AS user_data
FROM
tbl_users u,
tbl_data d
WHERE
d.user_id = u.user_id
这是否仍然会产生连接(因为在这个sql中没有连接关键字)?MySQL如何处理此查询?
如果WHERE子句是u.user_id = d.user_id而不是d.user_id = u.user_id,有什么区别吗?
谢
下面是带有IN子句的简单查询。但问题是,我需要以与is相同的顺序获得输出。
SELECT GROUP_CONCAT(username) as users FROM usertable WHERE usr_id IN (54,68,46)
例如,如果我通过了54, 68 ,46,那么usr_id为54的行应首先出现,然后是68,然后是46。在MySQL中有什么方法可以做到这一点吗?
这两个SELECT子句有什么区别吗
(1)SELECT * from DB where key1="XXX" and key2="yyy"
and
(2)SELECT * from DB where key2="yyy" and key1="XXX"
我为两个键都创建了索引,key1是主键
另外,我是否可以强制MySQL引擎使用index2 (对于key2 )而不是index1 ??
我对where条件感兴趣;如果我写:
Select * from table_name
where insert_date > '2010-01-03'
and text like '%friend%';
它是否与以下内容不同:
Select * from table_name
where text like '%friend%'
and insert_date > '2010-01-03';
我的意思是,如果表很大,有很多行,如果mysql首先接受符合条件“where insert_date >
我在mysql中使用变量赋值,我发现了一个奇怪的行为。
请参阅此查询:
SET @v1=0;
SET @v2=0;
SELECT @v1, @v2
FROM MyTable table
WHERE (@v1:=@v2) is not null
AND (@v2:=2) is not null;
我认为条件按如下顺序解析:首先是(@v1:=@v2) is not null,然后是(@v2:=2) is not null
因此,结果必须是:
@v1 | @v2
---------
0 | 2
但事实并非如此。尝试此查询,您将得到以下结果:
@v1 | @v2
---------
我使用的是MySQL 5.0.88。我有这样的疑问:
select DISTINCT party.id
FROM party
LEFT join party_identifier AS pi
ON pi.party_id = party.id
WHERE (pi.source_note=?
AND (first_name LIKE ? OR last_name LIKE ? OR pi.identifier LIKE ?))
AND party.type = ?
AND party.record_status_id =
环境1:运行PHP(5.2.4) MySQL(5.1.30)
环境2:不工作的PHP(5.2.6)日志(4.1.25-MySQL)
这个函数是什么让它在环境1中工作,而不是在环境2中工作?没有错误,只是不返回任何内容。
function GetPrice($type, $level){
$result = mysql_query("SELECT * FROM `types` WHERE id = '$type'") or trigger_error(mysql_error());
while($row = mysql_fetch_array($
我有一个包含以下列的表:DATE, TICKER, and ID. --本质上,我试图对下面的代码进行选择--选择所有的代码和相应的ID(它可以有多个ID)。但是,在该表中,有多个条目,在这些条目中,代码可以具有相同的ID,但属于不同的日期,因此在这种情况下,我选择ID的日期最小。
SELECT
MIN(DATE),
TICKER,
ID
FROM Names
GROUP BY
TICKER,
ID
WHERE TICKER IN ('A', 'B')
现在,当我独立尝试这
MySQL查询子句的顺序是否会影响效率?例如:
SELECT *
FROM TABLE AS t
WHERE t.Employee_id = 1
AND t.payout > 500
VS.
SELECT *
FROM TABLE AS t
WHERE t.payout > 500
AND t.Employee_id = 1
另外,如果t.Employee_id已被索引,而t.payout未被索引,该怎么办?
我对简单的查询感到困惑:
SELECT * FROM table_name WHERE name = 'stack';
我的问题是,哪个部分首先执行:
SELECT * FROM table_name
或
WHERE name = 'stack'
首先从表中选择所有记录,然后使用哪里条件或筛选,首先筛选记录,然后选择?
有关问题的更多详细信息,请参见以下链接:
谢谢