mysql> show full columns from bpsw;
+--------+--------------+-----------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+--------+--------------+-----------+------+-----+---------+-------+---------------------------------+---------+
| badpsw | varchar(128) | utf8_bin | NO | | NULL | | select,insert,update,references | |
+--------+--------------+-----------+------+-----+---------+-------+---------------------------------+---------+
1 row in set (0.00 sec)
默认 NULL 和 NOT NULL 已经讨论过了。
您需要删除所有少于 8 个字符的行。我已经这样做了,但是错了……效率不高,不科学。我想,可能在删除条件下,您需要指定编码或使用 not length
。如何正确执行?
mysql> delete from bpsw where length(badpsw)<8;
Query OK, 574139 rows affected (12.27 sec)
mysql> delete from bpsw where badpsw like "_";
Query OK, 0 rows affected (0.82 sec)
mysql> delete from bpsw where badpsw like "__";
Query OK, 0 rows affected (0.81 sec)
mysql> delete from bpsw where badpsw like "___";
Query OK, 0 rows affected (0.83 sec)
mysql> delete from bpsw where badpsw like "____";
Query OK, 2862 rows affected (0.97 sec)
mysql> delete from bpsw where badpsw like "_____";
Query OK, 6624 rows affected (0.85 sec)
mysql> delete from bpsw where badpsw like "______";
Query OK, 10164 rows affected (0.88 sec)
mysql> delete from bpsw where badpsw like "_______";
Query OK, 12903 rows affected (0.92 sec)
1 个回答