By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE newdrs (
id INT AUTO_INCREMENT PRIMARY KEY,
accused_names VARCHAR(255),
accused_names_normalized VARCHAR(255)
);
CREATE FUNCTION `normalize_name`(s VARCHAR(255)) RETURNS varchar(255)
DETERMINISTIC
BEGIN
SET s = REGEXP_REPLACE(s, 'ة', 'ه');
SET s = REGEXP_REPLACE(s, 'ي', 'ى');
SET s = REGEXP_REPLACE(s, 'إ|أ|آ', 'ا');
RETURN REGEXP_REPLACE(s, '|ً|ُ|ِ|ٍ|ٌ|ّ', '');
END;
CREATE TRIGGER newdrs_before_insert BEFORE INSERT ON newdrs
FOR EACH ROW SET NEW.accused_names_normalized = normalize_name(NEW.accused_names);
CREATE TRIGGER newdrs_before_update BEFORE UPDATE ON newdrs
FOR EACH ROW SET NEW.accused_names_normalized = normalize_name(NEW.accused_names);
INSERT INTO newdrs (accused_names) VALUES ('أحمد'), ('احمد'), ('إحمد');
Records: 3 Duplicates: 0 Warnings: 0
SELECT * FROM newdrs WHERE accused_names = 'أحمد';
SELECT * FROM newdrs WHERE accused_names_normalized = normalize_name('أحمد');
id | accused_names | accused_names_normalized |
---|---|---|
1 | أحمد | احمد |
id | accused_names | accused_names_normalized |
---|---|---|
1 | أحمد | احمد |
2 | احمد | احمد |
3 | إحمد | احمد |