我有一个有点可怕的查询(遗留数据库),它会产生一个"column not found“错误。它看起来像这样(非常简单):
select somecolumn as name,
...
...,
(select sum(someothercolumn) from table where somecolumn = name)
from table
where (conditions)
奇怪的是,只有当我们更改服务器时,它才开始发生。在我们移动数据库之前,查询一切正常。旧的MySQL版本是5.6.14。新服务器运行的是5.7.9。
这是MySQL版本的问题吗?是不是某些设置改变了5.7的默认
我使用以下mysql语句来计数和检索mysql数据库中的多个数据库行:
SELECT COUNT(*) FROM leavesrecords WHERE leavetype IN ('Casual','Annual','Medical') and empno = '202' GROUP BY leavetype
但是,此查询的输出仅包含一个列,列名为COUNT(*)。此查询返回三个计数值,我希望这些值为PHP变量赋值。下面的PHP代码是我用来获取值的:
include 'database.php';
$query
我在第一圈学习数据库的时候遇到了麻烦。
在Silberschatz的第104页上,他在解释子查询时提供了这个查询。
select dept_name, avg_salary
from (select dept_name, avg (salary)
from instructor
group by dept_name)
as dept_avg (dept_name, avg_salary)
where avg_salary > 42000;
但是,这段代码在我的系统中不起作用,我后来了解到它实际上是MariaDB而不是MySQL。我也在用Adminer。
我的代码如下:
s = DBSession()
r = s.query(Food, FoodCategory).filter(Food.category_id == FoodCategory.id).first()
此查询引发异常:
sqlalchemy.exc.InvalidRequestError: Ambiguous column name 'food.category_id' in result set
我已经尝试了直接在mysql数据库中查询,它可以很好地工作。我还打印sqlalchey查询。是的,有相同的标签,"food.category_id as foo
当我运行以下查询时,我在我的网站上使用了PHP和MySQL(服务器版本: 5.5.31-0ubuntu0.12.04.2),这给了我上面的错误。我找不到这个错误的任何线索。有人能帮助我解决这个错误并建议对我现有的查询进行更改吗?供您参考,我在下面写我的查询:
DELETE
ABC.theory_sheet_set,
ABC.theory_sheet_questions
FROM
ABC.theory_sheet_set AS theory_sheet_set,
OCN.theory_sheet_questions AS theory_sheet_questions
WH
如果MySQL遇到相同的列名和别名,其中一个或另一个总是优先的吗?例如:
select NODE1 as `NODE2`, NODE2 as `NODE1` where `NODE2`=?
上述查询是否总是将列 NODE1 (label NODE2)与占位符匹配?换句话说,标签总是优先的吗?
如果是,对所有SQL数据库都是这样吗?
我是JPA的新手。
我正在尝试创建一个带有3个表的3个连接的本地查询。
我已经写了一个原生查询,类似于下面的内容:
Query query=entityManager.createNativeQuery("select p.value,m.value,t.value,t.value from ping as p,ming as m,ting as t where p.id=m.vid and m.id=t.vid");
List<Object[]> list = (List<Object[]>) query.getResultList();
我的数据库
这个问题我已经看过好几次了,但我不知道如何显示结果。我有一个电影数据库,我希望在一个单一的MySQL查询中,我的顶部菜单中的每个电影类型的计数,所以我的菜单将显示如下:
Total Movies (300)
Drama (50)
Comedy (75)
Thriller (30)
...and so on...
我在这个网站上发现了一些MySQL查询,但没有人指定如何处理查询后的计数。像这样的东西可能会起作用:
select genre, count(*) from movies group by genre
但是,之后如何显示每个值的计数呢?非常感谢!
我习惯于在Oracle数据库上运行,所以我真的不太确定如何解决这个问题。我已经将我的查询的一个简单示例缩小到以下范围:
SELECT 0 as gm_rowID,
'-ALL Grantmakers-' as grantmakerName
FROM dual
GROUP BY 2
phpMyAdmin运行SQL时出现以下错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right s
下面的mysql查询
select * from PrivateData.Table1 AS m
LEFT JOIN
PrivateData.Table2 AS i
ON m.GUID = i.OutId;
在此查询期间,工作正常:
delete m,i from PrivateData.Table1 AS m
LEFT JOIN
PrivateData.Table2 AS i
ON m.GUID = i.OutId;
给出错误:
错误1046 (3D000):没有选择的数据库
为什么是这种情况?否则如何从表中删除选定的行?
P.S.:我不是mysql查询方面的专家。
我需要比较我的数据库(MySQL)中的两个日期( db中的类型是TIMESTAMP)。如下所示:(这个查询非常非常简单,因为我只需要这个答案)
SELECT count(id) as count FROM table WHERE data1 > data2
data1和data1是我的数据库中的两个时间戳列。
我通过PHP执行此查询,因此我可以使用PHP的所有特性。谢谢你的帮忙
我以前做过这样复杂的多表删除操作:
DELETE db1.t1 FROM db1.table1 AS t1, db1.table2 AS t2...
现在,在升级到MySQL 5.5.5之后,它不再起作用了,因为根据自5.5.3以来的文档,在DELETE语句中不允许使用db名称限定别名。所以我应该这么做:
DELETE t1 FROM db1.table1 AS t1, db1.table2 AS t2...
这也不能工作,因为和提供错误1046 (3D000):没有选择的数据库。
我不使用数据库,因为我的代码应该可以在未知的环境中集成,选择db可能会破坏现有的代码。
我是否应该假设,如果不选
我在报告定义中遇到异常,我的属性映射到外部mysql DB中,当我运行报告定义时,发生了此异常
错误:
**执行报表定义的查询时出错-获取列表时出现问题:代码:1064SQL: 42000消息:您的SQLState语法有错误;请查看与您的MySQL服务器版本对应的手册以获得正确的语法使用near‘。customerid AS "customerid“,"PC0".customername AS”customerid“,”PC0“.customernameAS "customername”FROM the’at line DatabaseException by
此查询预期在Mysql中工作:
SELECT category AS category_name, COUNT(id) AS total_books,
(SELECT COUNT(language) FROM books WHERE language = 'lang1' AND category = category_name) AS lang1,
(SELECT COUNT(language) FROM books WHERE language = 'lang2' AND category = category_name) AS lang2,
(SELECT
我是mysql数据库中的新手。我的查询是这样的,它运行良好。
SELECT visitor_sent * 100 / visitor_quantity as percentage FROM `tbl_orders` WHERE oid =15
但我希望在where子句中使用百分比变量,但它不起作用。
SELECT visitor_sent * 100 / visitor_quantity as percentage FROM `tbl_orders` WHERE oid =15 AND percentage < 20
它给了我未知的列百分比错误。如果这里有人能帮我纠正查询,请告诉我。
谢
我正在努力查询mysql数据库。下面是我整个长得多的查询的示例:
SELECT * ,
CASE WHEN t1.route = NULL THEN NULL ELSE left(t1.route,4) END AS node1,
CASE WHEN node1 = NULL THEN NULL ELSE CASE WHEN CHAR_LENGTH(node1) = CHAR_LENGTH(route) THEN NULL ELSE SUBSTRING(route,6,4) END END AS node2
FROM (SELECT *, [...] FROM main_db) t1
使用SQLAlchemy查询MySQL数据库,我得到以下错误:
sqlalchemy.exc.OperationalError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely) (_mysql_exceptions.OperationalError) (1205, 'Lock wait timeout exceeded; try restarting transactio