【问题标题】:Compare two columns ignoring 2 first chars比较忽略 2 个第一个字符的两列
【发布时间】:2017-09-28 13:05:56
【问题描述】:

在两个表中,列分别为phone_numberphone_no 我必须比较它们,但是 在phone_no 中的数字带有前缀23phone_number 他们没有前缀 忽略前缀如何比较它们?

第一张桌子

    +------------------+-------------+------+-----+-------------------+----------------+
| Field            | Type        | Null | Key | Default           | Extra          |
+------------------+-------------+------+-----+-------------------+----------------+
| id               | int(11)     | NO   | PRI | NULL              | auto_increment |
| name             | text        | NO   |     | NULL              |                |
| password         | text        | NO   |     | NULL              |                |
| email            | text        | NO   |     | NULL              |                |
| phone_no         | text        | NO   |     | NULL              |                |
| checked_by_admin | int(11)     | NO   |     | 1                 |                |
| date             | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
| download         | int(11)     | NO   |     | 1                 |                |
| sendto           | text        | YES  |     | NULL              |                |
| meet             | timestamp   | YES  |     | NULL              |                |
| note             | longtext    | NO   |     | NULL              |                |
| sec              | int(11)     | NO   |     | 1                 |                |
| alt_phone        | text        | NO   |     | NULL              |                |
| work             | text        | NO   |     | NULL              |                |
| company          | text        | NO   |     | NULL              |                |
| reg_by           | text        | NO   |     | NULL              |                |
| op_status        | text        | NO   |     | NULL              |                |
| lang             | varchar(15) | NO   |     | NULL              |                |
| deposit_by       | varchar(30) | NO   |     | NULL              |                |
| list_name        | text        | NO   |     | NULL              |                |
| web              | int(11)     | YES  |     | NULL              |                |
+------------------+-------------+------+-----+-------------------+----------------+

第二张桌子

`
+-------------------------+------------------------------------------------------------------+------+-----+-------------------+-----------------------------+
| Field                   | Type                                                             | Null | Key | Default           | Extra                       |
+-------------------------+------------------------------------------------------------------+------+-----+-------------------+-----------------------------+
| lead_id                 | int(9) unsigned                                                  | NO   | PRI | NULL              | auto_increment              |
| entry_date              | datetime                                                         | YES  |     | NULL              |                             |
| modify_date             | timestamp                                                        | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| status                  | varchar(6)                                                       | YES  | MUL | NULL              |                             |
| user                    | varchar(20)                                                      | YES  |     | NULL              |                             |
| vendor_lead_code        | varchar(20)                                                      | YES  |     | NULL              |                             |
| source_id               | varchar(50)                                                      | YES  |     | NULL              |                             |
| list_id                 | bigint(14) unsigned                                              | NO   | MUL | 0                 |                             |
| gmt_offset_now          | decimal(4,2)                                                     | YES  | MUL | 0.00              |                             |
| called_since_last_reset | enum('Y','N','Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8','Y9','Y10') | YES  | MUL | N                 |                             |
| phone_code              | varchar(10)                                                      | YES  |     | NULL              |                             |
| phone_number            | varchar(18)                                                      | NO   | MUL | NULL              |                             |
| title                   | varchar(4)                                                       | YES  |     | NULL              |                             |
| first_name              | varchar(30)                                                      | YES  |     | NULL              |                             |
| middle_initial          | varchar(1)                                                       | YES  |     | NULL              |                             |
| last_name               | varchar(30)                                                      | YES  |     | NULL              |                             |
| address1                | varchar(100)                                                     | YES  |     | NULL              |                             |
| address2                | varchar(100)                                                     | YES  |     | NULL              |                             |
| address3                | varchar(100)                                                     | YES  |     | NULL              |                             |
| city                    | varchar(50)                                                      | YES  |     | NULL              |                             |
| state                   | varchar(2)                                                       | YES  |     | NULL              |                             |
| province                | varchar(50)                                                      | YES  |     | NULL              |                             |
| postal_code             | varchar(10)                                                      | YES  | MUL | NULL              |                             |
| country_code            | varchar(3)                                                       | YES  |     | NULL              |                             |
| gender                  | enum('M','F','U')                                                | YES  |     | U                 |                             |
| date_of_birth           | date                                                             | YES  |     | NULL              |                             |
| alt_phone               | varchar(12)                                                      | YES  |     | NULL              |                             |
| email                   | varchar(70)                                                      | YES  |     | NULL              |                             |
| security_phrase         | varchar(100)                                                     | YES  |     | NULL              |                             |
| comments                | varchar(255)                                                     | YES  |     | NULL              |                             |
| called_count            | smallint(5) unsigned                                             | YES  |     | 0                 |                             |
| last_local_call_time    | datetime                                                         | YES  | MUL | NULL              |                             |
| rank                    | smallint(5)                                                      | NO   | MUL | 0                 |                             |
| owner                   | varchar(20)                                                      | YES  | MUL |                   |                             |
| entry_list_id           | bigint(14) unsigned                                              | NO   |     | 0                 |                             |
+-------------------------+------------------------------------------------------------------+------+-----+-------------------+-----------------------------+
`

【问题讨论】:

  • 你能分享表格的架构吗?此外,一些示例数据会有所帮助。
  • 样本数据会更多有用。我几乎可以猜到架构。
  • 现在检查,..

标签: mysql


【解决方案1】:

在比较子句中使用SUBSTR函数:

...
WHERE SUBSTR(table1.phone_no, 3) = table2.phone_number

【讨论】:

  • 我使用SELECT list_id,lead_id,phone_number,phone_no FROM vicidial_list,user_lavenir where (list_id=14092017 or list_id=18092017) and SUBSTR(vicidial_list.phone_number, 3) = user_lavenir.phone_no 但返回空结果
  • @Adaleni,别忘了给表达式分组:.. and (SUBSTR(vicidial_list.phone_number, 3) = user_lavenir.phone_no)
  • 如何从表 2 中删除它们现在这是选择查询 SELECT phone_code,list_id,lead_id,phone_number,phone_no FROM vicidial_list,user_lavenir where (SUBSTR(phone_no, 3) = phone_number)
【解决方案2】:

您可以使用 MID() 函数删除前两个字符。 用这种方式进行比较:

where MID(phone_number, 3, 20) = phone_no

【讨论】:

  • 空结果兄弟
  • @Adaleni 我在 MySQL 方面不是很强,但我怀疑 phone_no 列上的 TEXT 数据类型存在问题。试试这个:其中 MID(phone_number, 3, 20) = CONVERT(VARCHAR(20), phone_no)
  • 我只得到空结果
  • 尝试阅读这篇文章,它可以帮助你。 stackoverflow.com/questions/4350060/…
  • 我改变了,但还是什么都没有
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
相关资源
最近更新 更多