我正在为我的网站创建一个搜索功能,用户可以在文本字段中输入任何他喜欢的内容。它可以匹配任何东西(名字,头衔,工作,汽车品牌,...你可以说出它的名字)
最初,我在需要搜索的每个表上编写了一个内部联接查询。
SELECT column1, column2, ... FROM person INNER JOIN person_car ON ... INNER JOIN car ...
这最终导致了一个具有6到8个内部连接的查询,以及大量的WHERE ...如'%searchvalue%‘
现在这个查询似乎在MySql中引起了一个超时,我甚至从我的主机提供商那里得到了一个警告,这个查询占用了
一些问题前的信息:
我正在尝试将整个表从MySQL转换为SQLite (以及其他表,但从那里开始)。这是必须用java完成的事情,并且必须能够转换大量的数据。但是,在执行我的SQLite语句(相当大)时,整个程序只会锁定并冻结。还有一个事实是,当我查看SQLite数据库崩溃后,没有添加任何一行。
其他信息:
这些表有5列: int \ varchar(32) \ int _ int
这些表有两个键:第1列是主键(id),第2列是用户名的唯一键。
Java代码:
MySQL db = new MySQL();
StringBuilder sb = new StringBuilde
操作系统为ubuntu 16.04
MySQL版本:MySQL Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using EditLine wrapper
在我的系统中
/etc/mysql/ -> ls
conf.d debian.cnf debian-启动my.cnf my.cnf.fallback mysql.cnf mysql.conf.d
在该文件中,我需要配置以获取通用查询日志和慢查询日志。
嗨,我正在尝试让mysql查询正常工作,但老实说,我不确定从哪里开始,我认为计数功能可以工作,但不确定。
我尝试做的是执行一个select操作,但是如果计数的行数少于5行,则使用另一个查询/where子句进行联合,直到到达5行。
所以基本上至少走5行,并保持连接直到达到5行或更多行…
$myquery_mysql = mysql_query("(SELECT title, city, ad_image, rent, uniqid FROM rentals WHERE front_page_ad = '1' AND paid = '1' AND c
我正在尝试连接两个SQL查询,我尝试了一些以前在堆栈上提出的问题的解决方案,但无法获得所需的输出。
我的第一个SQL查询是
SELECT * FROM albums_songs
LEFT JOIN audio USING(AUDID)
WHERE ARTID='".mysql_real_escape_string($artid)."'
AND ALBID='".mysql_real_escape_string($albid)."'
第二个是
SELECT * FROM `albums_s`
WHERE ALBUMID=
我看到有一个很好的选项,如何启用日志慢查询和没有索引的查询:
SET GLOBAL log_queries_not_using_indexes=1;
SET GLOBAL log_slow_queries=1;
好的,好的,但是它们似乎都写入了我在my.cnf配置文件中指定的同一个日志文件:
[mysqld]
long_query_time = 1
log-slow-queries = /var/log/mysql/mysql-slow.log
我使用mysqldumpslow查看最慢的查询,但是我需要做什么才能单独查看那些没有索引的查询呢?
在像这样的MySQL查询中
SELECT *
FROM (
SELECT user_id
FROM favorites
WHERE user_id >1
UNION SELECT user_id
FROM favorites
WHERE user_id <9
) AS derived
不给收藏夹表起别名可以吗(例如'friends AS f1')我注意到这个查询按预期工作(即返回所有user_ids),但我不知道这样做是不是不好。当我有几个联合时,如果我不必保持所有别名的整齐,那么我的查询就不会那么混乱了。对于何时使用别名,有没有一个好的通用规则(可能是“在使用同
假设我有一系列的查询,这些查询逐渐变得更加昂贵。我可以加入所有的工会,但我只对前十名的结果感兴趣,所以我增加了一个限制。该查询如下所示:
(SELECT col1, col2 FROM table WHERE colx = 'x')
UNION
(SELECT col1, col2 FROM table WHERE colx LIKE '%x%')
UNION
(SELECT col1, col2 FROM table WHERE colx LIKE '%x%' AND unindexedcol LIKE '%y%')
LIMIT
我正在将我的.NET/MSSQL迁移到RoR/MySQL/EC2/Ubuntu平台。在我将所有现有数据转移到MySQL中后,我发现MySQL查询速度非常慢,即使是像查询select count(*) from countries这样的超基本查询,它也只是一个国家/地区表,只包含大约200条记录,但查询需要0.124ms。这显然是不正常的。
我是MySQL的新手,谁能告诉我可能的问题是什么?或者安装MySQL后我应该打开的任何初始优化按钮?
我在MySQL中创建了一个视图
create view vtax
as
SELECT * FROM table1
union
SELECT * FROM table2;
在表1中有800000条记录,table2有500000条记录,当我运行独立查询时,结果返回0.078秒,但当我通过视图运行它们时,它花费的时间超过10-15秒。
select * from vtax where col1=value; -- takes more than 10-15 secs
select * from table1 where col1=value; -- takes 0.078 secs
sele
我有一个PHP昏迷分隔的I字符串,如1,2,3。我有一个MySQL表,它有id列
表task_comments:
id
--
1
2
我想得到列表中所有不在表中的I。在这里,我想得到3作为结果。
目前,我正在构建一个类似于PHP的查询,它正在工作。
SELECT id FROM (
SELECT 1 id FROM DUAL
UNION ALL
SELECT 2 id FROM DUAL
UNION ALL
SELECT 3 id FROM DUAL
) a WHERE id NOT IN (SELECT id FROM task_comments);
我不认为这是个好办法。我想知道是否有更好
我有两个mysql查询:
$sql = "SELECT * FROM content WHERE threadName LIKE '%$filter%' ORDER BY lastUpdated desc";
和
$sql = "SELECT * FROM content ORDER BY lastUpdated desc";
最终结果是从一个特定表“content”返回所有行,但将匹配变量$filter的行放在顶部。有没有一个查询可以组合这两个查询,或者我应该使用一个连接?
............still不走运。这是我目前所拥有的:
$sq
如果我运行以下查询:
SELECT `Manga`.`id`, `Manga`.`name` FROM `mangas` AS `Manga` WHERE `Manga`.`id` in
(
SELECT `manga_id` FROM `mangas_genres` where `manga_id` = 1
)
我的计算机没有响应(我只是输入错误)。它无法运行此查询。上面的代码是否无效?请帮帮我。
我认为它是有效的,但它不能运行。我不明白。它肯定是MySQL,我在MYSQL工作台上运行查询(不是在PHP中)我的计算机非常慢(当运行查询时)我的table mangas和mangas_genr
我已经搜索了,但找不到适合此mysql查询的确切需要的答案。
我在多个表上执行以下查询,以便为应用程序生成“统计数据”:
SELECT COUNT(id) as count FROM `mod_**` WHERE `published`='1';
SELECT COUNT(id) as count FROM `mod_***` WHERE `published`='1';
SELECT COUNT(id) as count FROM `mod_****`;
SELECT COUNT(id) as count FROM `mod_*****`;
非常简单,有
这是我的新手,如果标题令人困惑,我很抱歉。我正在构建一个简单的php/mysql图库。当用户第一次访问它时,它将显示最新的25个条目,还允许离站链接到列表中的单个条目。如果URL包含ID,javascript将滚动到它。但是,如果存在25+条目,则我的查询可能会获取最新的结果,但会省略一个较旧的条目,该条目恰好在URL中作为ID。
这意味着我需要做这样的事情。
SELECT * FROM `submissions` WHERE uid='$sid'
但在成功找到具有特殊ID的提交后,也要这样做
SELECT * FROM `submissions` ORDER BY `id`
我有这张桌子
我想让它看起来像这样
我使用的查询是{
SELECT Cat,Reg,Branch, Mnth, Qty
FROM
(
SELECT Cat,Reg,Branch, 'Jan' Mnth, Jan Qty
FROM BQV
WHERE Jan > 0
UNION ALL
SELECT Cat,Reg,Branch, 'Feb', Feb
FROM BQV
UNION ALL
SELECT Cat,Reg,Branch, 'Mar', Mar
FROM BQV
UNI