我有一个表(MySQL 5.1,InnoDB),大约有3M行,其中98%只包含一个单词.如果我正在使用查询LIKE %searchterm%,那就太慢了.
由于SELECT只有这个表的查询,我正在考虑将其转换为MyISAM(因为InnoDB还没有,或者只支持5.6+版本,支持FULLTEXT).
但是,我想知道这是否会真正加快查询速度,因为据我所知,FULLTEXT索引是一个包含分词的表("Hello sunny day" - >"hello","sunny","一天"),所以如果每列只有一个单词,那会有意义吗?
如果我在这个文本列上放一个普通的索引,它会加快查询吗?
预先感谢您的帮助!
有没有一种方法可以轻松地将给定的十六进制颜色代码分配给更一般的类别(红色,绿色,蓝色,黄色,橙色,粉红色,黑色,白色,灰色等)?
像#ffcc55->橙色,#f0f0f0->白色,...
编辑:甚至只是类似于Adobe Photoshop查找最近的Web安全颜色,因此它将颜色数量减少到256,已经是一个不错的解决方案!
我知道这个问题已被多次询问(但是,我仍然找不到解决方案):
基本问题:拥有表格帖子,评论,用户 ......您可以使用一个选择语句选择并显示所有帖子和所有评论(使用comment.user,comment.text,comment.timestamp)吗?这样的选择语句怎么样?如果没有,最简单的解决方案是什么?
我也试图JOIN在comments表与posts表和使用GROUP BY,但我得到了无论是每一行或每条评论仅在一个评论,但还那些帖子多次!?
我尝试了第一个链接的解决方案(嵌套的mysql_query然后获取)以及第二个链接(使用数组).然而,第一个引起了一堆错误(该帖子中的语法似乎不正确,我无法弄清楚如何解决它),在第二个我遇到了数组问题.
我的查询到目前为止看起来像这样:
SELECT p.id, p.title, p.text, u.username, c.country_name, (SELECT SUM(vote_type) FROM votes v WHERE v.post_id = p.id) AS sum_vote_type FROM posts p LEFT JOIN user u ON ( p.user_id = u.id ) LEFT JOIN countries c ON ( c.country_id = u.country_id ) ORDER BY $orderby DESC
Run Code Online (Sandbox Code Playgroud)
我想知道这个问题是不是很常见,有帖子和评论显示......?
感谢您提前的每一个帮助!
在我的大多数查询中,我的表现非常糟糕.我已经阅读了很多关于stackoverflow的内容,但仍然有一些问题,也许有人可以提供帮助或给我任何提示?
基本上,我正在预订网站上工作,其中包括以下表格:
对象
+----+---------+--------+---------+------------+-------------+----------+----------+-------------+------------+-------+-------------+------+-----------+----------+-----+-----+
| id | user_id | status | type_id | privacy_id | location_id | address1 | address2 | object_name | short_name | price | currency_id | size | no_people | min_stay | lat | lng |
+----+---------+--------+---------+------------+-------------+----------+----------+-------------+------------+-------+-------------+------+-----------+----------+-----+-----+
Run Code Online (Sandbox Code Playgroud)
或者在MySQL中:
CREATE TABLE IF NOT EXISTS `objects` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'object_id',
`user_id` int(11) unsigned DEFAULT NULL,
`status` tinyint(2) unsigned NOT NULL,
`type_id` tinyint(3) unsigned DEFAULT NULL COMMENT 'type of object, from object_type id',
`privacy_id` tinyint(11) …Run Code Online (Sandbox Code Playgroud) 下面的代码:一次点击事件(关闭登录框)不会在FF中激活(但webkit浏览器工作.并且slideToggle点击事件也适用于所有浏览器).有人有什么想法吗?
非常感谢您的帮助!
<div class="loginbox" id="loginbox">
<div class="loginbox_close" id="loginbox_close"></div>
...
<input type="button" value="Login" class="btn_login"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function() {
$('#menu').on('click', '#menu_login', function() {
alert('test'); // this DOES fire, works in all browsers
$('#loginbox').slideToggle(240,'swing');
});
$('#loginbox').on('click', '#loginbox_close', function() {
alert('test'); // does not fire in FF, however webkit browser work!
$('#loginbox').slideUp(240,'swing');
});
});
Run Code Online (Sandbox Code Playgroud)
.loginbox {
width:164px;
padding:10px 18px 14px 18px;
border:1px solid #CCC;
border-top:0px;
position:absolute;
margin-left:780px;
background:#678;
opacity:0.9;
box-shadow:inset 20px 40px 80px 4px #789,0 2px 8px #ABC;
}
.loginbox_close {
width:20px; …Run Code Online (Sandbox Code Playgroud) 我对此查询感到非常疯狂,并想知道是否有一个天才,这对于谁来说这只是一个孩子的游戏......?
此查询应建议随机用户登录用户,而登录用户与建议用户之间的关系不得以下列方式之一阻止:
id | username | country_id_home | timestamp_lastonline | gender | birthdate | allow_gender | age_min | age_max | ...
Run Code Online (Sandbox Code Playgroud)
注释:birthdate是mysql-date格式(YYYY-MM-DD),gender(0 =女性,1 =男性),allow_gender(0 =两者,1 =女性,2 =男性)
country_id | name | continent_id | ...
Run Code Online (Sandbox Code Playgroud)
id | city_real | ...
Run Code Online (Sandbox Code Playgroud)
评论:loc_id_home在表中user匹配id的cities
id | user_id | country_id | ...
Run Code Online (Sandbox Code Playgroud)
id | …Run Code Online (Sandbox Code Playgroud) 有没有人知道为什么这个函数,当传递一个无效的日期(例如时间戳)时,仍然会抛出一个错误,尽管try-catch?
function getAge($date){
try {
$dobObject = new DateTime($date);
$nowObject = new DateTime();
$diff = $dobObject->diff($nowObject);
}
catch (Exception $e) {
echo 'Error: ', $e->getMessage();
}
return $diff->y;
}
Run Code Online (Sandbox Code Playgroud)
错误:
致命错误:消息'DateTime :: _ construct()[datetime .-- construct]的未捕获异常'异常' :无法解析位置7(6)处的时间字符串(422926860):... .php中的意外字符:4堆栈跟踪:#0 ... .php(4):DateTime-> _construct('422926860')#1 ... .php(424):getAge('422926860')#2 {main}抛出/ ......第4行的.php
非常感谢你提前!
基本上我有一个"删除所选项"按钮,只要没有选中复选框就会被禁用.一旦用户选中了复选框,我就想将click事件处理程序绑定到此按钮.
由于用户可能会取消选中复选框并且没有选中,我想将完整的事件处理函数存储在变量中,并且只在选中复选框时将其绑定.
问题是:如何将此事件处理函数存储在变量中以最容易地将其绑定到对象?
直到现在我只使用它来取消绑定事件处理程序(已存在于此对象上),然后再次绑定它,如下所示:
$(my-selector).unbind('click', eventHandler);
$(my-selector).bind('click', eventHandler);
Run Code Online (Sandbox Code Playgroud)
......但从来没有反过来.
我想知道是否有任何方法可以选择未在一系列数字中使用的第一个数字,类似于使用MAX()来选择最高数字.
假设你有一个列"id",你插入1,2,3,5,6,8,10,......
如果使用MAX(),它将返回10.有没有办法选择SELECT 4(因为它是第一个空闲数字),填充4然后选择SELECT 7(已经采用了5,6,所以7将是下一个... .)
先感谢您!:)
在每个页面的最开始,我都包含一个启动SESSION等的文件,让我们调用它session.php.在这个文件中session.php,我包含一个包含函数的文件,让我们调用它function1.php,因为我需要函数可用session.php.
然而,在后来的主页我还包括function2.php其需要访问设置变量session.php,所以我还试图包括session.php在function2.php.
问题是因为function1将被多次声明而发生错误...
致命错误:无法重新声明function1()(之前在...中声明)
那么,对于这个更优雅,更干净的解决方案呢?你怎么能解决它?
基本上,我需要访问主页中包含的函数内的变量...之前...
刚试过以下方法发现这不起作用?
(使用jQuery):
function bookmark_add() {
$.ajax({
type: "POST",
url: "load.php",
data: data,
success: function(msg) {
var msg_array=msg.split("-");
var success=msg_array[0];
var bookmark_id=msg_array[1];
if(success==1) {
$('.btn_bookmark').html('Remove Bookmark');
$('.a_bookmark').attr("onClick","bookmark_remove("+bookmark_id+"), return false;");
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
这个功能很好.<a>正确更改元素的属性.然而,新事件(该功能bookmark_remove没有被解雇.所以我认为我的方法不起作用,因为一些基本的误解,可能?
谁能告诉我这个假设是正确的,并给出任何暗示为什么?
查询1:
SELECT *
FROM user_d1
WHERE EXISTS (SELECT 1
FROM `user_d1`
WHERE birthdate BETWEEN '1989-08-04' AND '1991-08-04')
ORDER BY timestamp_lastonline DESC
LIMIT 20
Run Code Online (Sandbox Code Playgroud)
查询2:
SELECT *
FROM user_d1
WHERE birthdate BETWEEN '1989-08-04' AND '1991-08-04'
ORDER BY timestamp_lastonline DESC
LIMIT 20
Run Code Online (Sandbox Code Playgroud)
而我真的不明白:为什么查询2会返回错误的结果?它返回一个首先排序的列表birthdate,然后是timestamp_lastonline......