2013-05-09 74 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