Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-在WHERE子句中使用REPLACE()_Mysql_Sql_Replace_Where Clause - Fatal编程技术网

MySQL-在WHERE子句中使用REPLACE()

MySQL-在WHERE子句中使用REPLACE(),mysql,sql,replace,where-clause,Mysql,Sql,Replace,Where Clause,我知道我可以通过从tbl中使用SELECT REPLACEcolm“”来替换所有空格来选择列中的数据,但在WHERE子句中如何做到这一点?以下是我尝试过的: SELECT things.*, stores.* FROM things, stores WHERE things.id = 283468234 && stores.name = "Some Name" && REPLACE(LOWER(stores.owner), ' ', '') = "fi

我知道我可以通过从tbl中使用SELECT REPLACEcolm“”来替换所有空格来选择列中的数据,但在WHERE子句中如何做到这一点?以下是我尝试过的:

SELECT things.*, stores.* 
FROM things, stores 
WHERE things.id = 283468234 
&& 
stores.name = "Some Name" 
&& 
REPLACE(LOWER(stores.owner), ' ', '') = "firstnamelastname"
我想要的结果的一个例子是:

|  things.id  |   stores.name    |     stores.owner     |
|-------------|------------------|----------------------|
|  283468234  |    Some Name     |  First Name Last Name|
我得到的错误是: 1064-您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“LIMIT 0,25”附近要使用的正确语法

注意:我也尝试过使用AND而不是&&但是没有任何改变

我认为出现此错误的原因是PHPMyAdmin自动删除了我的上一条&&语句,并添加了LIMIT 0,25,使查询从things中选择things.*,stores.*,stores WHERE things.id=283468234&&stores.name=Some name&&LIMIT 0,25。这是问题还是我的疑问?如何修复此问题?

&&相当于SQL中的和

确保LIMIT是SQL语句中的最后一个子句。 您使用的限制也是不正确的。你想要:

对于返回的25个结果,限制为25 不限0,25 结果0到25是你的意图,我想

从你最初的陈述中总结出来:

SELECT things.*, stores.* 
FROM things, stores 
WHERE things.id = 283468234 
AND stores.name = "Some Name" 
AND REPLACE(LOWER(stores.owner), ' ', '') = "firstnamelastname"
LIMIT 25

虽然我还没有测试过,但它应该可以工作。

我发现了问题。看起来这纯粹是PHPMyAdmin的一个bug。我试着用我的软件运行这个查询,它运行得非常完美。

添加&&LIMIT 0,25会导致任何查询出错,因为这是胡说八道。phpmyadmin未添加&&。也许将您的&&切换到和,看看这是否会清除它。@JNEVIL进行了编辑,很抱歉,该错误与您添加&&限制有关。。。。现在您更改了代码,输出是什么?记住根据您一直尝试的内容更改问题自动删除最后一个&&是什么意思?您问题中的SQL与您提交的SQL完全相同吗?我同意Phpmyadmin可能在您的语句中添加了限制0,25',但这不是导致错误的原因。@jnevil的意思是它会变成SELECT things.*,stores.*FROM things,stores WHERE things.id=283468234&&stores.name=Some name&&LIMIT 0,25问题是Phpmyadmin会自动添加限制0,25。我也试着用AND代替&&但是我得到了同样的结果error@apxx您是否尝试在PHPMyAdmin之外运行查询?构建一个快速脚本来连接并运行查询,看看您得到了什么。您是否也考虑过编写显式外部联接而不是查询?这也可能是问题的一部分。在这一点上,我不愿意接受表面上的错误。另外,不要使用。*-尝试从每个表中选择所需的显式列。