gpt4 book ai didi

mysql - 如何使用给定的正则表达式格式检查 sql 查询中用户输入的格式?

转载 作者:行者123 更新时间:2023-11-29 18:26:40 25 4
gpt4 key购买 nike

例如制作一个表格,以便用户可以输入两个身份证明之一:Aadhaar 卡或护照。格式:阿德哈卡:NNNN NNNN NNNN护照: ANNNNNN ,其中 A 是字母,N 是数字。如果用户输入的格式错误,则不应接受输入。

最佳答案

最好在其他地方(在前端应用程序中或最好在业务逻辑层中)而不是在数据库中验证用户输入。

话虽如此,仍然可以验证传入的数据,甚至可以使用触发器对其应用更改。例如:

DELIMITER $$
CREATE TRIGGER checkInputFormat
BEFORE INSERT ON yourTable FOR EACH ROW
BEGIN
IF (NEW.card IS NULL AND NEW.passport IS NULL) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'No identity provided';
END IF;

IF (NEW.card IS NOT NULL AND NEW.card NOT REGEXP '^(\d{4} ){2}\d{4}$') THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid card format';
END IF;

IF (NEW.passport IS NOT NULL AND NEW.passport NOT REGEXP '^[A-Za-z]\d{6}$') THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid passport format';
END IF;
END;
$$
DELIMITER ;

此触发器将对您尝试插入 yourTable 的每一行执行,并使用常规检查 cardpassport 列的格式表达式。如果格式无效,则会抛出错误并且不会插入该行。

关于mysql - 如何使用给定的正则表达式格式检查 sql 查询中用户输入的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46128420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com