如何防止在mySQL中输入包含空格的文本

如何防止在mySQL中输入包含空格的文本,mysql,text,space,Mysql,Text,Space,偶尔,用户会错误地在文本列中输入带有尾随空格的文本,这在视觉上很难发现。当必须将此文本字段与另一个不存在尾随空格的文本字段进行匹配时,这可能会在以后导致问题。在mySQL中是否可以强制文本字符串不能包含特定字符(本例中为空格) 感谢您的反馈 有很多方法可以实现您的目标: 检查应用程序中的用户输入,如果其中包含空格,则将其拒绝。如果您主要担心的是用户输入的质量,那么这可能是最好的方法 您可以在应用程序逻辑中或使用sql从用户输入中删除空格(或仅删除起始/尾随空格) 如果选择从sql中的用户输入中删

偶尔,用户会错误地在文本列中输入带有尾随空格的文本,这在视觉上很难发现。当必须将此文本字段与另一个不存在尾随空格的文本字段进行匹配时,这可能会在以后导致问题。在mySQL中是否可以强制文本字符串不能包含特定字符(本例中为空格)


感谢您的反馈

有很多方法可以实现您的目标:

  • 检查应用程序中的用户输入,如果其中包含空格,则将其拒绝。如果您主要担心的是用户输入的质量,那么这可能是最好的方法

  • 您可以在应用程序逻辑中或使用sql从用户输入中删除空格(或仅删除起始/尾随空格)


  • 如果选择从sql中的用户输入中删除所有空格,则使用。如果只想删除起始空格和尾随空格,请使用以获得所需的结果。

    有多种方法可以实现所需的结果:

  • 检查应用程序中的用户输入,如果其中包含空格,则将其拒绝。如果您主要担心的是用户输入的质量,那么这可能是最好的方法

  • 您可以在应用程序逻辑中或使用sql从用户输入中删除空格(或仅删除起始/尾随空格)


  • 如果选择从sql中的用户输入中删除所有空格,则使用。如果您只想删除起始空格和尾随空格,请使用以获得所需的结果。

    使用mysql函数的一种简单方法是基于trim()


    使用mysql函数的一种简单方法是基于trim()的


    这不是mysql的工作。您应该从一开始就插入“干净”的数据,这意味着在客户端代码中删除空间,然后再接近mysql。my-sql是各种技术的混合体。。。所以请检查确切的版本和引擎。。。。有两种SQL技术可以提供帮助:BEFORE-UPDATE-OR-INSERT触发器可以根据规则透明地修复数据,而CHECK约束可以阻止插入无效数据。如果您的数据库支持其中任何一个,那么-u可以使用它。我可以用Firebird SQL编写这两个代码,但不能用MYSQL,所以不能回答Marc所说的问题。这不是MYSQL的工作。您应该从一开始就插入“干净”的数据,这意味着在客户端代码中删除空间,然后再接近mysql。my-sql是各种技术的混合体。。。所以请检查确切的版本和引擎。。。。有两种SQL技术可以提供帮助:BEFORE-UPDATE-OR-INSERT触发器可以根据规则透明地修复数据,而CHECK约束可以阻止插入无效数据。如果您的数据库支持其中任何一个,那么-u可以使用它。我可以在Firebird SQL中编写这两种代码,但不能在MYSQL中编写,因此我不会回答Marc所说的问题。在应用层中这样做是最好的方法。在数据库级别强制执行此操作会导致挫折感,尤其是在出于某种原因需要空间时。在应用程序层执行此操作是最好的方法。在数据库级别强制执行此操作会导致挫败感,尤其是在出于某种原因需要空间时。
    select 
      trim('    try with trim  ')
    , length (trim('    try with trim  '))
    , length ('    try with trim  ') 
    from dual ;