首页 > 解决方案 > 将 PHP 查询转换为 MS Access

问题描述

如何将此查询转换为 MS Access?

SELECT * FROM table WHERE (id='11101958' OR number LIKE '%t11101958%' OR name LIKE '%t11101958%') OR (dateofbirth='1958-10-11' AND SUBSTR(name,1,1)='t') ORDER BY name LIMIT 0,10;

我已经发现:

LIMIT 0,10>TOP 10

dateofbirth='1958-10-11' AND SUBSTR(name,1,1)='t'>dateofbirth=#10-11-1958# AND LEFT(name,1)='t'

我似乎无法找到的是如何拥有 2 组“AND”。所以基本上我有:

SELECT TOP 10 * FROM table WHERE (id='11101958' OR number LIKE '%t11101958%' OR name LIKE '%t11101958%') OR (dateofbirth=#10-11-1958# AND SUBSTR(name,1,1)='t') ORDER BY name;

另外:我必须搜索 mm-dd-yyyy 而不是 dd-mm-yyyy 或 yyyy-mm-dd 是否正确?

标签: ms-access

解决方案


%Access中的 wild char 的等价物是*.
相当于SUBSTR()isMID()但是因为你只想要第一个字符所以LEFT()也可以。
而不是LIMIT使用TOP.
您可以使用yyyy-mm-dd日期格式:

SELECT TOP 10 * 
FROM table 
WHERE (id='11101958' OR number LIKE '*t11101958*' OR name LIKE '*t11101958*') 
   OR (dateofbirth=#1958-10-11# AND LEFT(name,1)='t') 
ORDER BY name

推荐阅读