2013-05-09 47 views
-1

我对发票号码文本框上的必填字段进行了验证,验证对于空文本框完美工作。但是当空格被添加到文本框时,它会跳过验证。我用正则表达式来检查空格并抛出有效的验证,但我的问题是有什么办法可以在数据库字段上做到这一点。如何对字段值中的空格应用MYSQL限制?

+0

这是一个MYSQL问题?目前用于验证的代码是什么? – Patashu 2013-05-09 06:42:19

+0

这不是Mysql问题。我想知道是否有任何方法可以通过Mysql设置限制 – Abhilasha 2013-05-09 06:53:46

回答

0

您可以简单地这样删除:

INSERT INTO `table` (`col_name`) VALUES (REPLACE('a string you are inserting' , ' ' , '')); 
+0

如果包含字段值空间,则必须限制记录以进行保存。目前我使用正则表达式来检查字段值中的空格,但仍然想知道是否有通过MySql设置限制 – Abhilasha 2013-05-09 06:51:54

+0

我添加了另一个答案。 – ljubiccica 2013-05-09 07:40:04

1

我想我找到了一个方法 - 这是一个肮脏的黑客,我不建议使用它,除非没有其他办法做到这一点。基本上你创建了一个触发器 - 我想编写代码来抛出一个错误,但似乎你不能直接在mysql上这样做,所以代码试图从一个不存在的表中删除。

delimiter $$ 
CREATE TRIGGER check_mycolumn_before_insert 
BEFORE INSERT ON `my_table` 
    FOR EACH ROW 
BEGIN 
    IF (NEW.mycolumn like '% %') THEN 
     DELETE FROM your_meaningfull_message WHERE id=-1; 
    END IF; 
END$$ 
+0

我测试过是否插入: INSERT INTO my_table'('mycolumn')VALUES('bl abl abl'); 我得到一个错误: 错误代码:1146.表'test_db.your_meaningfull_message'不存在 – ljubiccica 2013-05-09 07:45:24

+0

谢谢@ljubiccia。我很高兴与空白空间的JavaScript验证。 – Abhilasha 2013-05-09 08:55:44

+0

不客气。我认为这是一种更好的方式! =) 仅供参考 - 在其他数据库中存在一个CHECK约束,可用于此操作,但在MySQL中,CHECK子句已解析但被所有存储引擎忽略(dev.mysql.com/doc/refman/5.1/ EN /创建-table.html)。 – ljubiccica 2013-05-09 13:48:25