我打算构建一个需要学生姓名的mySQL表,如下所示:
Last Name + Father's First Name Initials + First Name
Run Code Online (Sandbox Code Playgroud)
例:
Beavers L. Scott James (father has one first name, son has two first names)
Beavers L. D. Scott (father has two first names)
Run Code Online (Sandbox Code Playgroud)
我只想要一个,而不是要求填写3个输入字段.但问题是,我该如何排序呢?我想首先按"姓氏"排序,然后按"名字"排序,然后按"父亲姓名首字母"排序.所以两个名字相似的学生会这样排序:
1. Beavers F. Christian
2. Beavers V. Scott James
3. Beavers L. Scott Paul
4. Beavers K. Sean
5. Beavers Q. Sean
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
不要捣乱你的数据.
存储三个单独的字段:姓氏,名字,父亲姓名首字母.
然后catenate输出:
select concat( last_name, ' ', paternal_initials, ' ', first_name) as displayed_name
from table
order by last_name, paternal_initials, first_name;
Run Code Online (Sandbox Code Playgroud)
更新:
我想让添加信息的人更容易并使用一个输入字段. - 诺伯特
但人们并不这么认为:姓氏,父母名字缩写,名字.
他们倾向于想到两个独立的实体:一个学生,一个名字,一个学生的父亲的名字.
如果您的用户处于姓氏最后的文化中,您可以拥有一个字段Student's Name和字段Father's Name,并假设每个字母中的最后一个单词都是姓氏.当然,如果姓氏后跟"Jr","Senior"或"3rd"等后缀,以及跟随母亲姓氏的西班牙语国家,则会失败.
最安全的当然是单独的,明确的领域.用户必须选择到另一个字段的额外"成本"实际上可能小于必须弄清楚如何使用模糊字段的认知"成本".
| 归档时间: |
|
| 查看次数: |
3615 次 |
| 最近记录: |