MYSQL语句中有空格如何解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL语句中有空格如何解决?相关的知识,希望对你有一定的参考价值。
UPDATE cdb_posts SET message=REPLACE(message,'123 456','1234') where tid=123456;
这个替换语句中需要替换的内容有空格,请问该怎么处理呢?
但事实上我执行这个语句了,123 456并没有替换成1234
mysql> select replace('123 456','123 456','1234');
+-------------------------------------+
| replace('123 456','123 456','1234') |
+-------------------------------------+
| 1234 |
+-------------------------------------+
1 row in set (0.05 sec)
2、如果你想去掉【message】中的所有空格的话
【replace(message,' ','')】就可以的。测试log如下:
mysql> select replace('1 2 3 4 5 6',' ','');
+-------------------------------+
| replace('1 2 3 4 5 6',' ','') |
+-------------------------------+
| 123456 |
+-------------------------------+
1 row in set (0.00 sec)
3、所以你的sql改成下面这样就可以了应该:
UPDATE cdb_posts SET message=REPLACE(message,' ','') where tid=123456;
4、改完了记住commit,使改正永久话。
---
以上,希望对你有所帮助。 参考技术A 你的这个语句能够执行,能够把"123 456"替换为"1234",包括空格一起被替换掉。
莫非你还有其它要求吗?
参考资料:
参考技术B UPDATE cdb_posts SET message=REPLACE(message,'123 456','1234') where replace(tid,' ','')=123456 参考技术C select * from cdb_posts where tid=123456看看查询结果中的message值
如果 MySQL 查询值中有空格,如何显示值
【中文标题】如果 MySQL 查询值中有空格,如何显示值【英文标题】:How to show value if there any empty space in MySQL query value 【发布时间】:2016-01-26 17:16:00 【问题描述】:我的数据库表是这样的:
“课程名称”列中的“纯数学A2”字段中有空格。我想在单选按钮值中获取 course_name。
我的mysql查询是:
<?php
$result2 = mysql_query("SELECT * FROM tbl_course WHERE label_id= 1");
while($row = mysql_fetch_array($result2))
echo "<input type='radio' value='".$row['course_name']."' ".$class." name='vh_course_radio' >" .$row['course_name'];
?>
但是有一些问题。在单选按钮中,值如下图所示:
任何机构可以帮助我?请给我解决方案。我想要的值就像 (value="pure math A2")。
【问题讨论】:
什么是“空白空间”?列是 NULL,还是只包含空白字符?$class
返回什么值?它可能会返回一些带有单引号或双引号的值。
@OllieJones 白色空间老兄
正常查看页面源代码,调试器就像您尝试重建输入一样,您看不到真正的错误
请不要将代码或数据库结构发布为图像。它们很难阅读,也无法搜索。请改为将其作为文本添加到代码块中。谢谢。
【参考方案1】:
使用mysqlREPLACE()
或替换' ' to '_'
SELECT *,REPLACE(course_name,' ','_') as course_name
FROM tbl_course WHERE label_id= 1
输出是:- pure_math_A2
【讨论】:
谢谢...现在它正在工作...我还有一个问题,如果有任何单引号,例如:A'levels 那我该如何显示呢?你能解决吗? 使用这个选择REPLACE(REPLACE("course's name",' ','_'),"'",'')【参考方案2】:我相信,您希望在缺少列值的地方插入替代值。列中缺少值的方式有两种。一种是当列为 NULL 时,另一种是当它是所有空格时。你没有说你的表是如何记录缺失值的,所以我将提供一个处理这两者的解决方案。
因此,您可以更改 SQL 查询以检测情况。
IFNULL(course_name,'')
将 NULL 值转换为空字符串(无空格)。那么
TRIM(IFNULL(course_name,''))
如果列值包含空格或 NULL,则生成不包含字符的文本字符串。最后,
CASE WHEN LENGTH(TRIM(IFNULL(course_name,''))) = 0 THEN 'substitute'
ELSE course_name
END
将生成您的替代值。所以使用这个 SQL 查询
SELECT col, col,
CASE WHEN LENGTH(TRIM(IFNULL(course_name,''))) = 0 THEN 'substitute'
ELSE course_name
END AS course_name
FROM tbl_course
WHERE label_id= 1
【讨论】:
【参考方案3】:你需要 replace
space
到 "_"
(别的)
<input type='radio' value='pure_math_A2'>pure math A2
在提交后你可以replace "_"
到space
,这样你的问题就解决了
【讨论】:
【参考方案4】:代替
while($row = mysql_fetch_array($result2))
echo "<input type='radio' value='".$row['course_name']."' ".$class." name='vh_course_radio' >" .$row['course_name'];
使用下面的方法可能对你有帮助,
<?php while($row = mysql_fetch_array($result2)): ?>
<input type='radio' value="<?php echo $row['course_name'];?>" name=' vh_course_radio' ><?php echo $row['course_name']; ?>
<?php endwhile; ?>
【讨论】:
以上是关于MYSQL语句中有空格如何解决?的主要内容,如果未能解决你的问题,请参考以下文章