我有以下mySQL查询,完全正常.除了我需要添加"FORCE INDEX",我不确定我必须在哪里做到这一点.我尝试了几乎每个位置,并始终收到mySQL错误.我究竟做错了什么?
这是原始查询:
$sql_select_recent_items = $db->query("SELECT * FROM (SELECT owner_id, product_id, start_time, price, currency, name, closed, active, approved, deleted, creation_in_progress FROM db_products ORDER BY start_time DESC) as resultstable
WHERE resultstable.closed=0 AND resultstable.active=1 AND resultstable.approved=1 AND resultstable.deleted=0 AND resultstable.creation_in_progress=0
GROUP BY resultstable.owner_id
ORDER BY start_time DESC");
Run Code Online (Sandbox Code Playgroud)
查询以这种方式构造,以便我可以在"GROUP BY"之前执行"ORDER BY",以防您想知道.
我需要补充的是:
FORCE INDEX (products_start_time)
Run Code Online (Sandbox Code Playgroud)
我在几乎没有成功的地方试过它,这让我相信有一些我更缺失的东西更复杂?
AM在我的带有WAMP服务器的Windows PC上使用MySQL 5.7.13
这里我的问题是在执行此查询时
SELECT *
FROM `tbl_customer_pod_uploads`
WHERE `load_id` = '78' AND
`status` = 'Active'
GROUP BY `proof_type`
Run Code Online (Sandbox Code Playgroud)
我总是得到这样的错误
SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'returntr_prod.tbl_customer_pod_uploads.id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by不兼容
你能告诉我最好的解决方案吗?
我需要像结果一样
+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
| id | user_id | load_id | bill_id | latitude | langitude | proof_type | document_type | file_name | is_private | status | createdon | updatedon |
+----+---------+---------+---------+----------+-----------+------------+---------------+--------------+------------+--------+---------------------+---------------------+
| 1 | 1 | 78 | 1 | 21.1212 | 21.5454 | 1 | 1 | id_Card.docx | 0 | Active | …
Run Code Online (Sandbox Code Playgroud) 收到以下错误:
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'world.country.Code' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Run Code Online (Sandbox Code Playgroud)
运行以下查询时:
select countrylanguage.language, country.code, sum(country.population*countrylanguage.percentage/100)
from countrylanguage
join country on countrylanguage.countrycode = country.code
group by countrylanguage.language
order by sum(country.population*countrylanguage.percentage) desc ;
Run Code Online (Sandbox Code Playgroud)
使用MySQL世界测试数据库(http://dev.mysql.com/doc/index-other.html).不知道为什么会这样.目前正在运行MYSQL 5.7.10.
有任何想法吗???:o
我如何在mysql查询的where子句中使用max()函数,我正在尝试:
select firstName,Lastname,MAX(id) as max where id=max;
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:
Unknown column 'max' in 'where clause'
Run Code Online (Sandbox Code Playgroud)
任何帮助?提前致谢.
我正在开始一个项目,我正处于设计阶段:即,我还没有决定我将使用哪个db框架.我将拥有创建"森林"结构的代码.也就是说,许多树,每棵树都是标准的:节点和边.在代码创建这些树之后,我想将它们保存在db中.(然后最终将它们拉出来)
在db中表示数据的天真方法是具有两个表的关系数据库:节点和边.也就是说,节点表将具有节点id,节点数据等.而边表将是节点id到节点id的映射.
有更好的方法吗?或者给出(有限的)假设我给出的这是最好的方法?如果我们添加树相对较小的假设怎么样 - 将整个树保存为db中的blob会更好吗?在这种情况下我应该使用哪种类型的数据库?请评论速度/可扩展性.
谢谢
我有2列
date number
---- ------
1 3
2 NULL
3 5
4 NULL
5 NULL
6 2
.......
Run Code Online (Sandbox Code Playgroud)
我需要用新值取代NULL值,取值来自日期列中上一个日期的最后一个已知值的值,例如:date = 2 number = 3,date 4和5 number = 5和5.出现NULL值随机.
我有一个简单的MySQL表,其中包含一个类别列表,级别由parent_id确定:
id name parent_id
---------------------------
1 Home 0
2 About 1
3 Contact 1
4 Legal 2
5 Privacy 4
6 Products 1
7 Support 1
Run Code Online (Sandbox Code Playgroud)
我正试图做一个面包屑的踪迹.所以我有孩子的'id',我想得到所有可用的父母(迭代链,直到我们达到0"Home").可以有任何数量或子行进入无限深度.
目前我正在为每个父级使用SQL调用,这很麻烦.SQL中是否有一种方法可以在一个查询中完成所有操作?
我已经确定我的本地网络托管公司不能支持Django.
mod_python
FastCGI或SCGI. mod_rewrite
. 其中任何一个都阻止我将我的网站部署为该主机服务的Django应用程序.
我意识到我的网站基本上是静态的.我想知道我是否可以将Django缓存用于文件系统,并部署缓存中的内容.或者使用wget
递归捕获我在localhost上运行的站点.有人做过这种手术吗?是否有可能,是否值得努力?
我意识到我至少还有两个选择:
编辑:谢谢大家的建议!我已经向我的托管服务提供商发送了一封电子邮件,让他们有机会为我提供升级服务.如果他们无法通过,我将WebFaction视为提供者.
我尝试运行以下语句:
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION)
SELECT (a.number, b.ID, b.DENOMINATION)
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
Run Code Online (Sandbox Code Playgroud)
根据我的理解,应该从temp_cheques中插入VOUCHER中的每个记录,其ID和DENOMINATION字段对应于BOOK表中的条目(temp_cheques来自数据库备份,我试图以不同的格式重新创建).但是,当我运行它时,我收到一个错误:
Error: Operand should contain 1 column(s)
SQLState: 21000
ErrorCode: 1241
Run Code Online (Sandbox Code Playgroud)
我在SQuirrel中运行它并且没有遇到任何其他查询的问题.我的查询语法有问题吗?
编辑:
BOOK的结构是:
ID int(11)
START_NUMBER int(11)
UNITS int(11)
DENOMINATION double(5,2)
Run Code Online (Sandbox Code Playgroud)
temp_cheques的结构是:
ID int(11)
number varchar(20)
Run Code Online (Sandbox Code Playgroud) 我使用PHP在XAMPP中访问MySQL.我的问题是,如果出现数据库错误,我可以在哪里找到MySQL日志文件.
另外,我可以更改该日志文件的默认位置/名称吗?
谢谢
/////基于评论//////
mysql> show variables like '%log_file%';
+---------------------------+------------------------------------+
| Variable_name | Value |
+---------------------------+------------------------------------+
| general_log_file | C:/xampp/mysql/data/mysql.log |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| slow_query_log_file | C:/xampp/mysql/data/mysql-slow.log |
+---------------------------+------------------------------------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)