小编Bil*_*win的帖子

FORCE INDEX mySQL ...我把它放在哪里?

我有以下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)

我在几乎没有成功的地方试过它,这让我相信有一些我更缺失的东西更复杂?

mysql indexing greatest-n-per-group

38
推荐指数
2
解决办法
9万
查看次数

SELECT列表不在GROUP BY子句中,并且包含非聚合列....与sql_mode = only_full_group_by不兼容

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)

mysql group-by mysql-error-1055

38
推荐指数
20
解决办法
10万
查看次数

SELECT列表不在GROUP BY子句中,并包含非聚合列

收到以下错误:

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 sql aggregate mysql-error-1055

32
推荐指数
2
解决办法
12万
查看次数

MAX函数在where子句mysql中

我如何在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)

任何帮助?提前致谢.

mysql sql max greatest-n-per-group

31
推荐指数
5
解决办法
12万
查看次数

如何在db中表示树状结构

我正在开始一个项目,我正处于设计阶段:即,我还没有决定我将使用哪个db框架.我将拥有创建"森林"结构的代码.也就是说,许多树,每棵树都是标准的:节点和边.在代码创建这些树之后,我想将它们保存在db中.(然后最终将它们拉出来)

在db中表示数据的天真方法是具有两个表的关系数据库:节点和边.也就是说,节点表将具有节点id,节点数据等.而边表将是节点id到节点id的映射.

有更好的方法吗?或者给出(有限的)假设我给出的这是最好的方法?如果我们添加树相对较小的假设怎么样 - 将整个树保存为db中的blob会更好吗?在这种情况下我应该使用哪种类型的数据库?请评论速度/可扩展性.

谢谢

database tree hierarchical-data data-structures

30
推荐指数
1
解决办法
3万
查看次数

SQL QUERY使用先前已知值中的值替换行中的NULL值

我有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值随机.

sql null

24
推荐指数
7
解决办法
9万
查看次数

在一个SQL查询中获取所有父行

我有一个简单的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中是否有一种方法可以在一个查询中完成所有操作?

mysql sql hierarchical-data

24
推荐指数
2
解决办法
1万
查看次数

将Django网站转储到静态HTML?

我已经确定我的本地网络托管公司不能支持Django.

  • 他们运行Python 2.2.
  • 不支持mod_pythonFastCGI或SCGI.
  • 不支持mod_rewrite.

其中任何一个都阻止我将我的网站部署为该主机服务的Django应用程序.

我意识到我的网站基本上是静态的.我想知道我是否可以将Django缓存用于文件系统,并部署缓存中的内容.或者使用wget递归捕获我在localhost上运行的站点.有人做过这种手术吗?是否有可能,是否值得努力?

我意识到我至少还有两个选择:

  • 使用PHP CMS解决方案.
  • 将我的域名切换到另一个托管服务.

编辑:谢谢大家的建议!我已经向我的托管服务提供商发送了一封电子邮件,让他们有机会为我提供升级服务.如果他们无法通过,我将WebFaction视为提供者.

django hosting

23
推荐指数
3
解决办法
4741
查看次数

MySQL语法错误消息"操作数应包含1列"

我尝试运行以下语句:

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)

mysql mysql-error-1241

23
推荐指数
1
解决办法
7万
查看次数

我在哪里可以找到XAMPP中的MySQL日志文件

我使用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)

mysql xampp

23
推荐指数
2
解决办法
5万
查看次数