我有一个旧的MySQL查询,以找到一个总是正常工作的空闲ID (0.0325秒)。但是现在我换到了MariaDB,它非常慢(超过30秒)
SELECT
START AS codice
FROM (
SELECT
codice +1 AS START
FROM `clfoco`
WHERE
SUBSTRING(codice,9) BETWEEN '0000001' AND '9999999' AND codice LIKE '1201__%'
) AS a
LEFT JOIN (
我希望在编译时生成MYSQL查询。有一些和子句我想让它们根据可选的输入参数动态地附加到查询中,这些参数在运行时是已知的。
因此,我计划使用LIKE搜索,而不是动态连接AND。
假设我有一个名为'Ramakrishna‘的值,查询如下
SELECT * from my_table WHERE col LIKE '%Ramakrishna%'
当参数没有值时,我想使用like search
SELECT * from my_table WHERE col LIKE '%%'
我想对我的查询中的15个参数执行此操作。除非我知道这个方法的性能趋势,否则我
顾名思义,带有倍数或的查询会更快,或者带有多个查询的查询加上联合会更快?为了使它变得简单,我只连接了两个表,但是联接中可以有更多的表。
例如,
select isbn, booktitle from book as b left join publisher as p
on b.publisherid = p.publisherid
where
booktitle like '%mysql%' or
isbn like '%mysql%' or
publi
我正在使用一些可选的过滤URI查询参数(如/items等)实现一个典型的列表Rest端点?attr=val&attr2=val。
Rest服务器支持Go/MySQL
关于查询性能,我想知道是否最好创建一个准备好的语句,利用LIKE语句:
SELECT cols from items WHERE attr LIKE ? and attr2 LIKE ?;
并简单地将值设置为'%',使其为用户未填充的属性。
还是根据给定的吸引力动态生成查询?
没有吸引力的例子:
SELECT cols from items;
以一次攻击为例:
SELECT cols from items
对于给定的查询,
select * from contacts where name like "%$name%"
mysql是否优化查询以排除变量$name为空时的条件?
当$name为空字符串时,查询将执行为
select * from contacts
或
select * from contacts where name like "%%"
您好,有什么方法可以优化这个mysql查询吗?
SELECT ADDRESS , D_ADDRESS , U_DATA
FROM DATABASE1.TABLE1
WHERE (ADDRESS LIKE '0010') OR
(ADDRESS LIKE 'DHIL') OR
(ADDRESS LIKE 'FINN') OR
(ADDRESS LIKE 'GRWL') OR
(ADDRESS LIKE 'JNOD') OR
...
我有一个有150 k行数据的表,还有一个带有UNIQUE INDEX的列,它有一种类型的VARCHAR(10)并存储10位帐号。
现在,每当我查询时,就像一个简单的查询:
SELECT * FROM table WHERE account_number LIKE '0103%'
它会产生30,000+行,并且当我对查询运行解释时,它显示没有使用索引。
但当我这么做的时候
SELECT * FROM table WHERE account_number LIKE '0104%'
它将显示4,000+行,并使用索引。
有人能解释吗?
I'm using My
我“分组依据”我的数据库中的所有交易按商店。如何显示查询后未分组的所有其他交易?
这是我正在使用的查询:
$query = mysql_query("SELECT * FROM deals WHERE DATE_FORMAT(expiration_date,'%Y-%m-%d %H:%i:%s') >= NOW() $cat ORDER BY deal_id ASC") or die(mysql_error());
大家好,我正在使用以下查询来选择数据
mysql_query("SELECT * FROM prodcuts WHERE prod_name LIKE '%".$search."%'");
问题是,当你搜索的时候,比方说'he‘,它选择的比我想要的要多。所有的“hello”和“helblabla”都要加上“he”。
我想要做的是,假设你正在搜索playstation,它会接受以下搜索: playstatioq,yplaystation,playstationq等。因此,我希望允许搜索与准确的产品名称不同的一个字母。有什么想法可以做到吗?
假设我有一系列的查询,这些查询逐渐变得更加昂贵。我可以加入所有的工会,但我只对前十名的结果感兴趣,所以我增加了一个限制。该查询如下所示:
(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
我搜索了我所有的谷歌链接紫色,并没有找到解决我的问题。
据我所知,MySQL不是短路,而是where子句中的或运算符。许多搜索结果解释了为什么会发生这种情况,但这实际上无助于解决我的问题。
我们正在运行MySQL版本的5.7.36。
以下是查询中性能差异的结果:
使用OR子句查询(2 s 761 ms):
select count(*) from account_transaction
where (true or description like '%')
and datetime between '2022-05-19 00:00:0
我在我的数据库中有一个表候选人,它运行在MySQL 5.5下,我正在尝试从RAM包含在firstname中的表中获取行,因此我可以运行以下两个查询,但我现在想要从优化方面长期使用哪个查询。
SELECT * FROM CANDIDATE c WHERE firstname REGEXP 'ram';
SELECT * FROM CANDIDATE c WHERE firstname LIKE'%ram%';
我在mysql中有一个相当大的顺序表(大约12万行,而且还在不断增加),我在mysql-slow日志中看到一些查询花费的时间太长了。此外,由于这个原因,我在服务器中也有一些峰值负载。
其中一个查询:
SELECT [list of fields]
FROM orders o
LEFT JOIN orders_total ot
ON ( o.orders_id = ot.orders_id )
LEFT JOIN orders_status s
ON o.orders_status = s.orde
假设Paul JD和Paul是同一个人,那么在搜索Paul或Paul JD时,将同时返回Paul和Paul JD的搜索的正确MySQL语句是什么
我的MySQL语句:
$sql=mysql_query("SELECT * FROM people WHERE name Like '%$h%' LIMIT 0, 5");
此语句在搜索Paul JD时不返回Paul。
我有一个如下所示的查询
select f.number,SUM(ii.qty),SUM(c.g1),SUM(c.g2),SUM(c.g3),SUM(c.g4),SUM(c.g5),SUM(c.g6) from
farmer as f
inner join
issue as i on f.number = i.farmerno
inner join
item_issue as ii on i.recno = (ii.recno+0)
inner join
目前,我有一个查询
SELECT field1 FROM table1
WHERE field1 LIKE '%foo%'
LIMIT 20
下面的查询是否更有效?
SELECT field1 FROM table1
WHERE
field1 LIKE 'foo' OR
field1 LIKE 'foo%' OR
field1 LIKE '%foo%'
LIMIT 20
SQL版本(对不起,我应该在前面提到)
MySQL 5.5与innoDB引擎在共享主机上。使用此配置,我不能使用全文索引(全文索引可从MySQL
请考虑以下情况:
我有一个MySQL表,名为actor。(是的,它来自Sakila样本DB)。
表中有一个名为last_name的varchar列。
列上有一个(非主)键。
打开MySQL安全更新模式。
当我运行这个查询时,它可以工作:
DELETE FROM actor WHERE last_name = 'foo';
当我运行这个查询时:
DELETE FROM actor WHERE last_name LIKE '%fo' OR last_name LIKE 'fo%';
此错误消息失败:
错误代码: 1175。
简单的问题:在查询中添加这样的东西会影响mysql的性能,还是很快就会优化掉?
AND `name` LIKE '%'
我这里没有可以测试它的大型数据库。
顺便说一句,我希望这样做是因为我希望用户能够向我的服务器端脚本发送一些参数,然后服务器端脚本获取用户指定的准备好的语句并插入参数。我希望用户在搜索时能够在不影响性能的情况下省略参数,而且LIKE通常相对较慢,对吧?
我执行以下MySQL查询需要一天以上的时间:
SELECT SN,NUMBER FROM a
WHERE SN IN
(SELECT LOWER_SN FROM b
WHERE HIGHER_ED LIKE "%c1" AND LOWER_ED LIKE "%16")
AND ED LIKE "%16"
该子查询运行时间为21秒,返回11035行。我有一个索引:
SHOW INDEX FROM a
排序表Non_unique Key_name Seq_in_index Column_name排序基数Sub_part压缩空In
我想在多个列中搜索一个字符串,以检查它是否存在于任何列中。我找到了一个解决方案,
的回答很短,但这是mysql服务器的解决方案,而不是Server的解决方案。因此,我想在Server中应用类似的查询。
以下是Thorsten提出的查询。
Select *
from tblClients
WHERE name || surname LIKE '%john%'
我试过
/* This returns nothing */
Select *
from Items
Where ISNULL(Code, '') + ISNULL(Code1, ''
我已经制作了一个上传的产品,它成功地工作了。但是现在我想创建一个搜索表单,这样任何人都可以通过搜索产品名称或类别或价格来显示结果。我的表格包含标题、价格、描述、类别列。
我的代码不工作了。我不知道该怎么做才对。当我想添加更多的列时,它不工作。我肯定不确定哪里错了,或者我需要做什么。
下面是我的产品搜索代码:
<?php
// Connects to your Database
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
我正在尝试为所有元素创建一个mysql查询,所有元素都以某个用户选择的克罗地亚字母开头。
对于普通的拉丁字母来说,这一切都很好。
我面临的问题是,当我用S搜索某个东西并说Š时,我得到了以S和Š开头的两个元素,ČĆC也是如此。
$sql=" SELECT * FROM `default_subjects` where name like '{$keywords}%'";
排序规则集为utf8_unicode_ci。
谢谢。:)
运行代码时,我无法检索目标条目,因为通过查询运行的关键字与数据库中的关键字不同。
关键词:
$keywords = 'spaghetti,macaroni,hamburger';
查询:
mysql_query("SELECT * FROM ---- WHERE keywords LIKE '%$keywords%' ORDER BY id DESC LIMIT 1");
我的目标是一个具有这些关键字的条目:
food, restaurant, hamburger, spaghetti, taco,pie
我可能遗漏了一些简单的东西,因为我已经连
我在布尔模式下使用MATCH/ matters进行MySQL搜索,但我需要单词的顺序很重要。
假设我在表“users”的"names“列中有以下内容:
+---------------------------------+
| names |
+---------------------------------+
| RONSON SIMPSON HOMER JAY |
| SIMPSON RONSON HOMER JAY |
| RONSON SIMPSON JAY HOMER
我在mysql查询中连接字符串时遇到问题。
下面是我的问题:
SELECT *, CONCAT(nombre,' ',apellido) AS fullname FROM user WHERE nombre LIKE '%$busqueda%' OR apellido LIKE '%$busqueda%' OR email LIKE '%$busqueda%' OR about LIKE '%$busqueda%' OR place LIKE '%$busqueda%' or fullname LI
在我的html页面上,用户可以选择输入文本字符串、复选标记选项或两者兼而有之。然后将这些数据放入显示数据的mysql查询中。
允许用户输入字符串这一事实意味着我在mysql查询中使用了LIKE函数。
如果我错了,请纠正我,但我相信LIKE函数可以大大降低查询速度。关于上面的语句,我想知道like函数中的空字符串是否会有不同,例如:
select * from hello;
select * from hello where name like "%%";
如果它真的有很大的不同(我相信这个数据库会变得更大),你对如何处理这个问题有什么想法。
我的第一个想法是,我将有两个查询:一
对不起,我不知道如何表达这个问题。我会试着解释的。下面是一个查询:
SELECT CONCAT(uno, due, tre) AS smth ... HAVING smth LIKE ...
它允许我对聚合的多列数据执行操作,虽然它工作得很好,但我不希望"smth“列的结果被实际选择和返回。有没有可能做这样的事情?
SELECT ... WHERE CONCAT(uno, due, tre) AS smth LIKE '...' OR smth LIKE '...' ...
或者,mysql是否已经使用多个相同的连接对查询进行了优化,以避免将相同的数据连
假设您正在运行一个查询,并且您有许多不同的用户输入可能找不到精确匹配。现在,是否可以做如下所示的事情?
$query = "SELECT *,
CASE matchingValues
WHEN $field1 LIKE '$a' THEN value = '1' ELSE value = '0'
WHEN $field2 LIKE '$b' THEN value = '1' ELSE value = '
我有一个问题:
SELECT items.*
FROM items
INNER JOIN other on other.some_key = items.some_key
WHERE
items.partition_id = 7 AND
items.created_date > '2016-01-01 00:00:00' AND
(
other.name like '%user query%' OR
match (fulltext_candidate) against ('+user* +query*' IN B
我希望使用contains函数来获取title或question包含特定值的所有值。但是,我得到了以下错误:
java.sql.SQLException:几何字节字符串必须是小endian。在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120) at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2076) at com.mysql.jdbc.Mys
我想用以下查询从Cosmos DB中检索数据:
SELECT * FROM c WHERE c.pi like '09%001'
(这是一个SQL查询,我可以在MySQL中使用它)
这里,pi是一个字符串值,可以是09001001或09025001。
在Cosmos DB中有没有使用LIKE命令的方法?
我知道cosmos DB使用CONTAINS,但当您想要特别匹配字符串的开头或结尾时,不能使用它。