MySQL选择喜欢的空间编码问题?

MySQL选择喜欢的空间编码问题?,mysql,sql,Mysql,Sql,我花了好几个小时来解决这个问题,但我解决不了 其中一列包含如下所示的值,该值包含一些空格 光学传感器 - 光电二极管 我要选择所有等于“”的值光学传感器 - 光电二极管". 但是空白空间可能是ASCII编码(‘\x0a’)或UTF8编码('\xA0'),因此当我执行这样的SQL字符串时,将不返回任何一个。 SELECT * FROM `icbase_icattrvalue` WHERE `value` LIKE '光学传感器 - 光电二极管' 我已经尝试过这样的SQL: SELECT

我花了好几个小时来解决这个问题,但我解决不了

其中一列包含如下所示的值,该值包含一些空格

光学传感器 - 光电二极管
我要选择所有等于“”的值光学传感器 - 光电二极管". 但是空白空间可能是ASCII编码(‘\x0a’)或UTF8编码('\xA0'),因此当我执行这样的SQL字符串时,将不返回任何一个。
SELECT * 
FROM  `icbase_icattrvalue` 
WHERE `value` LIKE  '光学传感器 - 光电二极管'
我已经尝试过这样的SQL:

SELECT *
FROM `icbase_icattrvalue`
WHERE REPLACE( `value` , '\xa0', ' ' ) LIKE REPLACE( '光学传感器 - 光电二极管', '\xa0', ' ' )
LIMIT 0 , 30 

或者一些类似的SQL字符串,但它们不能帮助,它们都返回None

SELECT * 
FROM  `icbase_icattrvalue` 
WHERE `value` LIKE  '光学传感器 - 光电二极管'
我应该怎么做,选择等于字符串的值,但忽略这样的空间编码问题


很抱歉我的英语很差。

正如亚历山大·格尔布赫在评论中所说,我也认为这是由于你的代码中的空格不正确造成的

SELECT *
FROM `icbase_icattrvalue`
WHERE REPLACE( `value` , '\xa0', ' ' ) LIKE REPLACE( '光学传感器 - 光电二极管', '\xa0', ' ' )
LIMIT 0 , 30 

实际上这是正确的答案,我应该替换
c2a0
,而不是
a0

utf-8中的非中断空间为
c2a0

在python中,unicode是
a0

我很困惑,谢谢大家

SELECT * FROM `icbase_icattrvalue` 
WHERE id = 197193 and 
REPLACE( `value` , UNHEX('c2a0'), ' ' ) = REPLACE( '光学传感器 - 光电二极管', UNHEX('c2a0'),  ' ' );

类似于替换('光学传感器 - 光电二极管', '\xa0',“”)
,我想您应该使用空格:
比如REPLACE('光学传感器 - 光电二极管', '\xa0','')
(注意最后一个
'
而不是
'
)。我很抱歉我的粗心,实际上我使用了SQL字符串
,比如REPLACE('光学传感器 - 光电二极管', '\xa0',“”)
稍后。但也不返回任何值。我为我的粗心感到抱歉,实际上我使用的是SQL字符串
,比如REPLACE('光学传感器 - 光电二极管', '\xa0','')
稍后。很抱歉我的英语很差,我想我没有把我的问题说清楚。我应该说
实际上我使用的是SQL字符串,比如REPLACE('光学传感器 - 光电二极管', '\xa0','')稍后
但也不返回任何值。谢谢您的帮助。我回答了我的问题。这只是解决了我的问题。