小编fab*_*rik的帖子

使用MySQL LEFT JOIN删除行

我有两个表,一个用于工作截止日期,一个用于描述工作.每个作业都可以处于状态,一些状态意味着必须从另一个表中删除作业的截止日期.

我可以通过以下方式轻松SELECT完成符合我标准的工作/截止日期LEFT JOIN:

SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
Run Code Online (Sandbox Code Playgroud)

(不status属于job表格deadline)

但是当我想删除这些行时deadline,MySQL会抛出错误.我的查询是:

DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
Run Code Online (Sandbox Code Playgroud)

MySQL错误没有说明:

您的SQL语法有错误; …

mysql left-join delete-row sql-delete

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

如何优化MySQL的ORDER BY RAND()函数?

我想优化我的查询,所以我调查一下mysql-slow.log.

我的大多数慢查询包含ORDER BY RAND().我无法找到解决此问题的真正解决方案.Theres是MySQLPerformanceBlog的可能解决方案,但我认为这还不够.在未经优化(或经常更新,用户管理)的表上,它不起作用,或者我需要运行两个或更多查询才能选择我PHP生成的随机行.

这个问题有什么解决方案吗?

一个虚拟的例子:

SELECT  accomodation.ac_id,
        accomodation.ac_status,
        accomodation.ac_name,
        accomodation.ac_status,
        accomodation.ac_images
FROM    accomodation, accomodation_category
WHERE   accomodation.ac_status != 'draft'
        AND accomodation.ac_category = accomodation_category.acat_id
        AND accomodation_category.acat_slug != 'vendeglatohely'
        AND ac_images != 'b:0;'
ORDER BY
        RAND()
LIMIT 1
Run Code Online (Sandbox Code Playgroud)

mysql random performance

88
推荐指数
2
解决办法
6万
查看次数

MySQL索引 - 有多少就足够了?

我正在尝试微调我的MySQL服务器,所以我检查我的设置,分析慢查询日志,并尽可能简化我的查询.

如果我正确编制索引,有时候就足够了.我读过某个地方(请纠正我,如果这是愚蠢的),多于我需要的索引会产生相同的效果,就像我没有任何索引一样.

有多少索引就足够了?你可以说它取决于数百个因素,但我很好奇我如何清理mysql-slow.log足够的以减少服务器负载.

此外,我看到了一些像这样"有趣"的日志条目:

# Query_time: 0  Lock_time: 0  Rows_sent: 22  Rows_examined: 44
SELECT * FROM `categories` ORDER BY `orderid` ASC;
Run Code Online (Sandbox Code Playgroud)

有问题的表包含22行,索引设置为orderid.为什么这个查询毕竟出现在日志中?为什么检查44行,如果它只包含22行?

mysql indexing performance logging

15
推荐指数
4
解决办法
1万
查看次数

用于修复损坏的序列化PHP数据的正则表达式/代码

我有一个由PHP序列化的大型多维数组.它已存储在MySQL中,并且数据字段不够大......结束已被切断...我需要提取数据...... unserialize不会工作...有没有人知道可以关闭的代码所有的数组...重新计算字符串长度...手工做的数据太多了.

非常感谢.

php

15
推荐指数
4
解决办法
1万
查看次数

MySQL或PHP中的函数

通常在Web服务器或数据库中运行函数会更好吗?

例:

INSERT INTO example (hash) VALUE (MD5('hello'))
Run Code Online (Sandbox Code Playgroud)

要么

INSERT INTO example (hash) VALUE ('5d41402abc4b2a76b9719d911017c592')
Run Code Online (Sandbox Code Playgroud)

好的,这是一个非常简单的例子,但是当网站发展到多个网站或数据库服务器时,为了实现可扩展性,哪里最好"做好工作"?

php mysql performance

12
推荐指数
1
解决办法
354
查看次数

在Flash应用程序中禁用PHP或JavaScript中的浏览器缓存

我们正在使用PHP开发Flash站点.问题是它存储缓存,但我们必须使用JavaScript或PHP禁用缓存.

如何禁用缓存?

javascript php

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

你可以在MySQL中将一个别名除以另一个别名吗?

我有一个多表查询,类似于此(简化版)

SELECT columns, count(table2.rev_id) As rev_count, sum(table2.rev_rating) As sum_rev_rating 
FROM table1
LEFT JOIN table2
ON table1.dom_id = table2.rev_domain_from 
WHERE dom_lastreview != 0 AND rev_status = 1 
GROUP BY dom_url 
ORDER BY sum_rev_rating/rev_count DESC
Run Code Online (Sandbox Code Playgroud)

问题出在该ORDER BY条款中.这会导致显示MySQL错误,如下所示:

不支持参考'sum_ rev_ rating'(参考组功能)

mysql

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

包含javascript的附加HTML无法运行,如何让它运行?

我正在附加一些包含javascript的HTML.

<td onclick="toggleDay('+data+',this,\'tue\');">T</td>
Run Code Online (Sandbox Code Playgroud)

<img src="img/cross.png" onclick="deleteAlarm('+data+');">
Run Code Online (Sandbox Code Playgroud)

这两段代码都包含在我附加的大量HTML中.

如果页面加载时它们已经存在,它们可以正常工作,但是当我附加时它们不能工作.

你建议我做什么?是否需要一些排序请求让DOM在追加后重新解释JavaScript或?

编辑:

还有一些信息,我遇到了这个问题,因为我在数据库中添加了一些AJAX的东西,并且在成功时我将html附加到它需要的位置.有点像SO对评论的做法.

EDIT2:

即使有关于它的所有讨论,感谢答案,让它工作.

html javascript dom dom-manipulation

8
推荐指数
1
解决办法
730
查看次数

CHAR()或VARCHAR()作为ISAM MySQL表中的主键?

我需要一个在MySQL中具有用户名和密码字段的简单表.由于用户名必须是唯一的,因此将它们作为主键是有意义的.

使用CHAR()VARCHAR()作为主键更好吗?

mysql

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

使用jQuery按给定id更新表行

在成功进行AJAX调用后,我需要更新特定的表行(通过tr id ="unique_key").

HTML片段:

<a name=\"p{$product_id}\" class=\"tr{$product_id}\"></a>
<tr id="p{product_id}" class="item-row">
<td><h3>{product_id}</h3><a rel="facebox" href="ajax_url">{product_name}</a></td>
<td>{image_information}</td>
<td>{image_sortiment}</td>
<td>{product_status}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

// AJAX Call
success: function(msg){
    $('#p' + prod_id).remove();
    $('.tr' + prod_id).after(msg);
    $('#p' + prod_id + ' a[rel*=facebox]').facebox();
}
...
Run Code Online (Sandbox Code Playgroud)

怎么了:

  • 表格行已删除
  • 锚点组成一行(不在它们之前<tr>),所以我的'钩子'消失了
  • AJAX结果插入整个表格(在我的'钩'之后但仍然是错误的地方)

我的想法有什么问题?我如何强制jQuery'覆盖'所需的表行?

html javascript jquery dom

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