![]() |
1
8
这很奇怪,在过去的15年里,我自己也曾多次与这个问题作过斗争,通常会提出将区号、国家代码和数字分隔成不同字段等的结构。但在阅读你的问题时,另一个解决方案突然出现在我的脑海中,它确实需要一个单独的字段,尽管这样可能不适合您。 您可以有一个单独的字段,名为reverse\u phone\u number,由数据库引擎自动填充,然后当人们搜索时,只需反转搜索字符串,并使用索引的反向字段,在类似字符串的末尾只有一个%即可,从而允许使用索引。 根据数据库引擎的不同,您可以基于用户定义的函数创建索引,该函数为您执行相反的操作,从而避免了对附加字段的需要。 在某些国家,例如英国,您可能会遇到前导零的问题。英国电话号码用(区号)(电话号码)表示,例如01634 511098,当该号码国际化时,将删除区号的前导零,并添加国际拨号代码(+或00)和国家代码(44)。这导致国际电话号码为+441634511098。任何搜索0163451109的用户如果是以国际化格式输入的,将找不到该电话号码。您可以通过从搜索字符串中删除前导零来克服这个问题。 编辑 |
![]() |
hello_programmers · Mysql从其他表输出一列 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 2 年前 |
|
Kugelfisch · 用php为数据库加密数据 2 年前 |