首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【转载】MySQL尾部空格处理与哪些设置有关?

    与空字符串的区别[1]中,简单对比、介绍了一下MySQL的NULL/空格/尾部空格处理方式,主要对比了NULL与长度为空的字符串,其实很多地方没有分析到位就一笔带过了。...这篇文章重新来细说一下MySQL的尾部空格处理方式。在MySQL中,有几个因素会影响MySQL如何处理空格。这里简单浅析一下....MySQL的排序规则有一个属性Pad Attributes属性,这个属性的设置会影响数据库如何处理尾部空格(是否忽略尾部空格),如下官方文档[2]描述 Collation Pad Attributes...> mysql> select * from test where name=' '; -- 包含一个空格 +----+------+ | id | name | +----+------+ | 2...4 | | +----+------+ 3 rows in set (0.00 sec) mysql> 官方文档中也要一个例子简单说明,两者比较时,如何处理尾部空格

    55730

    MySQL列名中包含斜杠或者空格的处理方法

    问题描述 数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作。...问题解答 对于这种特殊字符,我们一般想到的是用转义符进行处理,所以试了下"/"、引号、单引号等常见的转义符,发现依然语法错误,又查了下MySQL的官方说明: 特殊字符位于列名中时必须进行转义,如果列名中包含...mysql中反引号的作用 为了区分MYSQL的保留字与普通字符而引入的符号 举个例子:SELECT `select` FROM `test` WHERE select='字段值' 在test表中,有个select...字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。...引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值' 不加反引号建的表不能包含MYSQL保留字,否则出错 反引号`,数字1左边的符号  保留字不能用于表名,比如desc

    4K20

    正则表达式真的很骚,可惜你不会写!

    :617628 4配结果:176 5配结果:2991 6配结果:871 由结果可见:本来字符串中的“61762828”这一段,其实只需要出现3个(617)就已经匹配成功了的,但是他并不满足,而是匹配到了最大能匹配的字符...:617628 4配结果:2991 5配结果:87321 “617628” 是前面的\d{1,2}匹配出了61,后面的匹配出了7628 "2991" 是前面的\d{1,2}匹配出了29 ,后面的匹配出了...91 "87321"是前面的\d{1,2}匹配出了87,后面的匹配出了321 2....(\d{3,4}) 3配结果:61762 4配结果:2991 5配结果:87321 解答: “61762” 是左边的懒惰匹配出6,右边的贪婪匹配出1762 "2991" 是左边的懒惰匹配出2,右边的贪婪匹配出...991 "87321" 左边的懒惰匹配出8,右边的贪婪匹配出7321 5.

    50000

    CSS快速入门(二)

    :disabled 匹配处于关闭状态的用户界面元素 :empty 匹配除了可能存在的空格外,没有子元素的元素。 :enabled 匹配处于开启状态的用户界面元素。...:nth-child 匹配一列兄弟元素中的元素——兄弟元素按照an+b形式的式子进行匹配(比如2n+1配元素1、3、5、7等。即所有的奇数个)。...:nth-of-type 匹配某种类型的一列兄弟元素(比如,元素)——兄弟元素按照an+b形式的式子进行匹配(比如2n+1配元素1、3、5、7等。即所有的奇数个)。...兄弟元素按照an+b形式的式子进行匹配(比如2n+1配按照顺序来的最后一个元素,然后往前两个,再往前两个,诸如此类。从后往前数的所有奇数个)。...伪元素参考表 伪元素 选择器 描述 ::after 匹配出现在原有元素的实际内容之后的一个可样式化元素。 ::before 匹配出现在原有元素的实际内容之前的一个可样式化元素。

    47510

    Python 编程 | 连载 24 - 正则表达式

    ---- 一、正则表达式 认识正则表达式 正则表达式是一个特殊的字符序列,便于检查字符串是否与某种模式匹配,正则表达式也是对字符串的处理,通过定义一个规则,使得从字符串中匹配出符合规则的字符串,正则表达式可以...模块 匹配规则 匹配范围,既从哪个字符串中尽心匹配 正则表达式中的特殊字符 特殊字符 描述 \d 匹配任何十进制的数字,与[0-9]一致 \D 匹配任意非数字 \w 匹配任何字母数字下划线字符 \W 非字母数字以及下划线...\s 匹配任何空格字符,与[\n\t\r\v\f]相同 \S 匹配任意非空字符 \A 匹配字符串的起始 \Z 匹配字符串的结束I ....'I am Thor Odinson, 1500 years old' print('匹配到的数字为:{}'.format(re.findall('\d', data))) print('匹配到的空格为...\d', data) if len(res) > 0: return True return False def delete_num(data): # 匹配出非数字

    29300

    Python学习笔记(十一)·正则表达式

    我们来从左到右解读一下: \d{3}表示匹配3个数字,例如'010'; \s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' ',' '等; \d{3,8}表示3-8个数字...综合起来,上面的正则表达式可以匹配以任意个空格隔开的带区号的电话号码。 如果要匹配'010-12345'这样的号码呢?...但是,仍然无法匹配'010 - 12345',因为带有空格。所以我们需要更复杂的匹配方式。...举例如下,匹配出数字后面的0: >>> re.match(r'^(\d+)(0*)$', '102300').groups() ('102300', '') 由于\d+采用贪婪匹配,直接把后面的0全部匹配了...必须让\d+采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0配出来,加个?就可以让\d+采用非贪婪匹配: >>> re.match(r'^(\d+?)

    42620

    MySQL的CHAR、VARCHAR、TEXT等字符串字段在等值比较(=)时,会忽略掉尾部的空格,导致有空格也能匹配上的坑

    WHERE user_name = 'lingyejun '; #一个空格 SELECT * FROM user_info WHERE user_name = 'lingyejun '; #两个空格...SELECT * FROM user_info WHERE user_name = 'lingyejun '; #四个空格 无论查询中尾部带有几个空格,结果是一样的,都会命中'lingyejun...二、原因 查询MySQL的官方文档(https://dev.mysql.com/doc/refman/5.7/en/char.html),原来MySQL的校对规则基于PAD SPACE,这就意味着CHAR...而且这也符合SQL标准,无需设置也无法改变(参考:https://stackoverflow.com/questions/10495692/mysql-comparison-operator-spaces...四、结论 MySQL的CHAR、VARCHAR、TEXT等字符串字段在等值比较("=")时,基于PAD SPACE校对规则,会忽略掉尾部的空格; 在存储时,不会自动截断尾部的空格,会按原值存储; 如果想要精确查询就不能用等值查询

    24310

    mysql字符串等值查询中条件字段值末尾有空格也能查到数据问题

    我们针对name做简单的等值查询试试: #不带空格的duduu mysql> select * from student_info where name='duduu'; +----+---------...二、合理推测 通过上面的实验,明明是三个长度不同的字符串,空格放在前边被认为是不同,放在后边又被认为是相同,难道说:对于MySQL来说,字符串做字符串等值判断时会忽略后面的空格,duduu(不带空格)、...sec) mysql> #尾部带一个空格 mysql> INSERT INTO `student_info` (`name`) VALUES ('duduu '); ERROR 1062 (23000...): Duplicate entry 'duduu ' for key 'uk_name' mysql> #尾部带两个空格 mysql> INSERT INTO `student_info` (`name...五、总结 本文的结论如下: 在存储时,不会自动截断尾部的空格,会按原值存储; MySQL的CHAR、VARCHAR、TEXT等字符串字段在等值比较("=")时,基于PAD SPACE校对规则,会忽略掉尾部的空格

    79910

    python3 正则表达式基础廖雪峰

    我们来从左到右解读一下: \d{3}表示匹配3个数字,例如'010'; \s可以匹配一个空格(也包括Tab等空白符),所以\s+表示至少有一个空格,例如匹配' ',' '等; \d{3,8...综合起来,上面的正则表达式可以匹配以任意个空格隔开的带区号的电话号码。 如果要匹配'010-12345'这样的号码呢?...但是,仍然无法匹配'010 - 12345',因为带有空格。所以我们需要更复杂的匹配方式。...举例如下,匹配出数字后面的0: re.match(r'^(\d+)(0*)$', '102300').groups() ('102300', '') 由于\d+采用贪婪匹配,直接把后面的0全部匹配了...必须让\d+采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0配出来,加个?就可以让\d+采用非贪婪匹配: re.match(r'^(\d+?)

    1.9K20
    领券