问题描述
楼主用正则表达式查询
mysql> select ID,MJD,Scor_cfzhang from frb_info where `MJD` REGEXP '^58025' and Scor_cfzhang != 'null';
+----+-----------------------+--------------+
| ID | MJD | Scor_cfzhang |
+----+-----------------------+--------------+
| 2 | 58025.698382017348194 | 100 |
| 30 | 58025.699223994328349 | 100 |
| 31 | 58025.698048698614002 | 80 |
| 32 | 58025.698050328239333 | 60 |
| 33 | 58025.699217972105544 | 50 |
| 79 | 58025.698505595282768 | 100 |
| 80 | 58025.699104074352363 | 100 |
+----+-----------------------+--------------+
我对字段MJD用了正则表达式,希望筛选出MJD开头是 58025 的数据,如第一个表,确实筛选出来了;
出于需求,我把58025删掉测试,本来以为不会筛选出任何结果,但是还是有结果,如下:
mysql> select ID,MJD,Scor_cfzhang from frb_info where `MJD` REGEXP '^' and Scor_cfzhang != 'null'; +--------+-----------------------+--------------+
| ID | MJD | Scor_cfzhang |
+--------+-----------------------+--------------+
| 2 | 58025.698382017348194 | 100 |
| 30 | 58025.699223994328349 | 100 |
| 31 | 58025.698048698614002 | 80 |
| 32 | 58025.698050328239333 | 60 |
| 33 | 58025.699217972105544 | 50 |
| 79 | 58025.698505595282768 | 100 |
| 80 | 58025.699104074352363 | 100 |
| 12649 | 58026.003595791531552 | 80 |
| 12654 | 58026.006771200598450 | 60 |
| 12678 | 58026.003670847967442 | 80 |
| 12679 | 58026.006788419123041 | 100 |
| 12680 | 58026.003669788704428 | 50 |
| 12703 | 58026.003668455377920 | 80 |
| 12706 | 58026.003597932278353 | 80 |
| 657138 | 58033.172940786324034 | 100 |
| 657144 | 58033.172941830765922 | 60 |
| 657148 | 58033.172941327058652 | 50 |
+--------+-----------------------+--------------+
那么怎么样用包含58025的正则表达式查询出空结果呢?