我自己试图将字符串变量传递到MySQL查询中的where条件,如下所示,在这个中给出了这个条件。
select @start := ' and Id=21';
select * from myTable where 1=1 @start;
因此,如何在MySQL查询中使用具有where条件的字符串变量。变量是动态设置的,查询在过程中运行。
编辑:我也尝试过
SET @start = ' Id=21 ';
select * from myTable where (select @start);
但没用。
我使用的是highcharts堆叠柱状图。我试图创建一个动态查询。
$query = mysql_query("SELECT * FROM products WHERE productid IN ".$full);
这就是查询,$full被定义为:
$que1 = mysql_query("SELECT productid from admin_levels WHERE level>1 AND userid=$UserID ORDER BY productid");
$op1="";
while($row1 = mysql_fetch_ro
我有以下MYSQL查询:
START TRANSACTION;
SELECT sport_id INTO @a FROM sports WHERE sport_id = 2 FOR UPDATE;
UPDATE sports SET sport_name = 'Table Tennis' WHERE sport_id = @a;
if (@a > 1) then
COMMIT;
ELSE
ROLLBACK;
END IF;
问题是它在if语句处返回一个错误:
#1064 -您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得
我有一个奇怪的mysql查询速度问题,我正在努力解决这个问题。我将mysql数据库从一台服务器移动到另一台服务器时,本应更加健壮的服务器运行某些mysql查询的速度几乎是原始服务器的4倍。经过几天的调试,我终于发现在存储过程的where子句中使用变量的方式存在巨大的速度差异。下面是一些示例:
快速:
set @s = Concat('delete from visitids where VisitID=''',xVisitID,''' and OrgCode=''',xOrgCode,'''
我在旧网站上工作,在日志文件中发现了这个错误:
Invalid SQL: SELECT COUNT(*) AS color_count FROM colors WHERE id IN (on,on) ;
mysql error: You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near
'on,on) ' at line 1
php代码如下所示:
$que
我有4个查询在一个帖子上运行。我注意到,如果第一个查询中的一个没有工作要做,那么并不是所有的查询都能正常工作。
以下是我的问题
mysql_query("UPDATE invoice SET company='$company' WHERE company='$oldcompanyname'") or die(mysql_error());
mysql_query("UPDATE bill SET customer='$company' WHERE customer='$oldcompanyname'
我目前正在设置一个监视器来监视云SQL DB中的慢查询。我构建了一个自定义查询来让进程在SQL服务器上运行,因为目前缓慢的查询监控直到进程完成才会报告。为了在5分钟内每隔15-20秒(或在DD中配置的任何内容)检查一次当前运行的查询,我在DD代理的配置中设置了以下内容。
custom_queries:
- query: SELECT COUNT(*) as processes FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME >
(5 * 60 * 1000);
columns:
我应该用PHP做单个更复杂的MySQL查询还是多个更简单的查询?
例如
更简单的查询:
UPDATE image SET profile = 0 WHERE user_id = 1;
UPDATE image SET profile = 1 WHERE user_id = 1 AND id = 10;
还有一个更复杂的查询:
UPDATE image
SET profile = CASE id WHEN 10 THEN 1 ELSE 0 END
WHERE user_id = 1;
1:什么是最快和最有效的?
2:什么被认为是最佳做法,还是首选的方法?
在mysql中,我有以下内容:
结构Table
id(int primary key)
name(varchar 100 unique)
价值:
id name
1 test
2 test1
我有两个问题:
1) SELECT count(*) FROM Table WHERE name='test'
2)如果count选择行== 0秒查询INSERT INTO Table (name) VALUES ('test')
我知道这可能是有用的:
$res = mysql(SELECT count(*) as count FROM Table WHERE
下面的错误,所以肯定是错的,但是正确的做法是什么呢:
$query = "SELECT * FROM tblProducts WHERE ProductId ='$SCId' AND SELECT * FROM tblProducts WHERE Cat ='$CatType' AND Type ='$TypeType'";
$rsPrimary = mysql_query($query)或die (“查询'$query‘失败,错误消息:\"”. mysql_error () . '"');
使用MySQL,我有许多查询,如下所示:
SELECT * FROM table_name WHERE some_clause ORDER BY id LIMIT 1000 OFFSET 0
SELECT * FROM table_name WHERE some_clause ORDER BY id LIMIT 1000 OFFSET 1000
SELECT * FROM table_name WHERE some_clause ORDER BY id LIMIT 1000 OFFSET 2000
SELECT * FROM table_name WHERE some_clause ORDER
我正在努力将数据库系统从PostgreSQL移植到mySQL,但我无法理解这个简单的查询?
PostgreSQL查询如下所示:
query('WITH t as (UPDATE sessions SET expired = now() WHERE id = $1 AND ott = TRUE RETURNING *)' +
'SELECT * FROM users WHERE id = (SELECT user_id FROM t)',
[token], function(err, result) {
if
我有两张MySQL桌子。
TableA
ID Total
01 0
02 0
03 0
...
99 0
TableB
ID Name Points Year
01 Joe 4 2013
01 Bill 2 2013
02 Sam 10 2013
02 Barb 1 2013
02 Joan 7 2013
...
15 Fred 0 2013
15 Jan 3 2013
...
我希望将来自基于ID的Table B的MAX(Points)值存储在Table A的Total列中
我有一个可以得到MAX(Points)的M
我使用常规语句和预准备语句执行完全相同的查询,得到了不同的结果,我认为这是一个类型转换错误。
mysql> show columns from server where field = "vlan";
+-------------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------+------+-----+---------+-------+
| vlan | int(
我想在yii框架中创建一个sql查询,如下所示:
mysql> SELECT id, body, MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root') AS score
-> FROM articles WHERE MATCH (title,body) AGAINST
-> ('Security implications of running MySQL as root');
我试了一下,但它不起作用:
$dataProvi
$query = "INSERT INTO directory_level_one (child_categories)
VALUES
('$category_name')
WHERE
category = '$parent'";
目前,当我在上面的sql查询中添加WHERE部分时,我得到了以下错误。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versio
我有一个mysql查询,这是返回唯一的1条记录,需要跨越多个表。但是,mysql查询在执行时速度很慢。
查询:
SELECT *,
(SELECT TreeName FROM sys_tree WHERE TreeId = Mktg_Unit_Booking.ProjectLevelId) AS PhaseName,
(CASE WHEN ProductType = 'U' THEN (SELECT UnitNo FROM prop_unit pu WHERE pu.UnitId = mktg_unit_booking.UnitId)
ELSE (SELECT BayNo
在使用预准备语句时,我目前执行两个查询。一个用于获取结果,另一个用于获取找到的行数。以前,我可以用mysql_num_rows的一个查询来完成这项工作。对于较大的查询,我不希望必须复制和粘贴查询,并使用COUNT every query。有没有一种方法可以像mysql_num_rows一样在一个查询中做到这一点?
$connectdb->prepare("SELECT * FROM users WHERE username=:username");
$connectdb->prepare("SELECT COUNT(*) FROM user
我为MySQL 5.5编写的一些查询不再适用于MySQL 5.7。我不确定是否有配置设置..。
以下查询不再有效:
Update Tablex set Column1 = 3 where Tablex.ID = 20 and not exists (
Select * From ( Select * from Tablex a where a.StartTime > :Start and a.EndTime <:end ) as DerivedTable1
)
//不能指定目标表Tablex以便在FROM子句中更新
这在MySQL 5.5中非常有效,基本的想法是,MySQL
我在生成delete命令时遇到了问题:
private String generateDeleteCommand() {
StringBuilder deleteCommand = new StringBuilder();
for (ForeignKey fk : exportedForeignKeys) {
deleteCommand.append("DELETE FROM ").append(fk.foreignTableName)
.append(" WHERE ").append(f
我创建了一个函数changeIp()来禁用一条记录并返回一条新记录。如你所见,我使用的是3SQL查询。
有没有更好的方法来减少SQL查询的数量?
function changeIp() {
// Find 1 record which is not disabled
$SQL = "SELECT * FROM ip WHERE disable = 0 order by id limit 1";
$qIp = mysql_query($SQL) or die(mysql_error());
$qrow = mysql_fetch_assoc($q
如果您要编写这样的查询:
SELECT * FROM `posts` WHERE `views` > 200 OR `views` > 100
MySql会分析这个查询并意识到它实际上是等价的吗?
SELECT * FROM `posts` WHERE `views` > 100
换句话说,MySql是否会优化查询,从而跳过任何不必要的WHERE检查?
我之所以问这个问题,是因为我正在编写一段代码,该代码目前使用冗余的WHERE子句生成查询。我想知道在将这些查询发送到MySql之前是否应该对它们进行优化,或者这是否没有必要,因为MySql无论如何都会这样做。
我知道这是可以使用事务的,但我想使用单mysql查询。
这是哪个公共格式事务
START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
但是我需要知道一个mysql查询是可能的吗?
我的mysql数据库的jdbc驱动程序的版本是5.1.25。
我想像这样执行sql查询:
statement.execute("select fullName from user where user_id=1; select fullName from user where user_id=2");
我总是收到异常:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;
我正在使用带有mysql 5.1.53版本的Wampserver 2.1。
此查询:
SELECT * FROM `contents` WHERE 1
运行,而此查询
IF 1
SELECT * FROM `contents` WHERE 1
如果没有,我就会得到这个错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF 1 SELECT *
我正在vb.net中构建一个vb.net查询:
cmd.CommandText = "Select id INTO @idDep from dBase.tableA where guid in (@strdepToDelete, @strOtherToDelete) and IsDependent = '1'; " & _
"Select id INTO @idOther from dBase.tableA where guid in (@strdepToDelete, @st