- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用以下 mysql 查询,但由于正在进行一些重大的重新编码,我只需要使用该查询的一小部分来单独使用。当前查询是
$sql = sprintf('INSERT INTO FENQUIRY
(ENREGION, ENNAME, ENCOMP, ENADD1, ENADD2, ENADD3, ENCNTY,
ENPCODE, ENCNTRY, ENTEL, ENDATE, ENDATELCON, ENCAT,
ENCONSRS, ENADVER, ENTYPE, EN_CUSTOMER_ID)
SELECT
(SELECT region
FROM postcode2region
WHERE ab.entry_postcode REGEXP
CONCAT("^", postcode_prefix, "[:digit:]*")
ORDER BY postcode_prefix DESC LIMIT 1
) AS ENREGION,
c.ENCONNAME AS ENNAME,
IF(ab.entry_company <> "", ab.entry_company,
CONCAT(c.ENCONNAME, " - online")) AS ENCOMP,
ab.entry_street_address AS ENADD1,
ab.entry_suburb AS ENADD2,
ab.entry_city AS ENADD3,
ab.entry_state AS ENCNTY,
ab.entry_postcode AS ENPCODE,
cc.countries_name AS ENCNTRY,
c.ENCONTEL AS ENTEL,
CURDATE() AS ENDATE,
CURDATE() AS ENDATELCON,
"X" AS ENCAT,
1 AS ENCONSRS,
"WWW" AS ENADVER,
"70" AS ENTYPE,
c.ENCON_ID AS EN_CUSTOMER_ID
FROM FENQCON c
LEFT JOIN address_book ab
ON ab.address_book_id = c.ENCON_ZEN_DEFAULT_ADDRESS_ID
LEFT JOIN countries cc
ON cc.countries_id = ab.entry_country_id
WHERE c.ENCON_ID = %d
LIMIT 1',
$_SESSION['customer_id']);
我想使用的部分是
SELECT region FROM postcode2region
WHERE ab.entry_postcode REGEXP
CONCAT("^", postcode_prefix, "[:digit:]*")
ORDER BY postcode_prefix DESC LIMIT 1
但是如果我单独运行它,它显然会报告它不知道 ab.entry_postcode 是什么,所以我尝试将其更改为
SELECT region FROM postcode2region
WHERE (SELECT entry_postcode FROM address_book REGEXP
CONCAT("^", postcode_prefix, "[:digit:]*"))
ORDER BY postcode_prefix DESC LIMIT 1
但随后我收到一条错误消息 #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 'REGEXP CONCAT("^", postcode_prefix, "[:digit:]*")) ORDER BY postcode_prefix DESC' 附近使用的正确语法
简而言之,查询应该查看存储在address_book表的entry_postcode字段中的邮政编码,仅获取该邮政编码的前导字母,然后从postcode2region表的region字段中获取匹配的数据。
我确信应该可以在单个查询中完成它,但我还没有设法解决它。如果没有,我将分两个查询来完成。
如有任何帮助,我们将不胜感激。
最佳答案
如果您需要提取邮政编码的前缀(与正则表达式匹配的部分)作为查询的一部分,这并不容易,如果您在代码中进行进一步处理而不使用 SQL,可能会更好。请参阅this有关如何提取前缀的详细信息。
否则,我不知道你的 table 到底是什么样子,但无论如何我都会尝试。我还要提到我不习惯 MySQL(但不习惯 Oracle)。您要使用的查询部分是:
SELECT region
FROM postcode2region
WHERE ab.entry_postcode regexp concat("^", postcode_prefix, "[:digit:]*")
ORDER BY postcode_prefix DESC LIMIT 1
您说您想要从 postcode2region
表中获取 region
,其中 postcode_prefix
是 entry_postcode< 的前缀
来自 address_book
表。
如果我理解正确,您的查询应该类似于以下内容:
SELECT region
FROM postcode2region, (SELECT entry_postcode FROM address_book)
WHERE entry_postcode regexp concat("^", postcode_prefix, "[:digit:]*")
ORDER BY postcode_prefix DESC LIMIT 1
这应该会为您提供地址簿中带有任何邮政编码前缀的区域(仅限 1 行)。这是你想要的吗?
请注意,在您的原始查询中,您还按 fenqcon.encon_id
进行过滤,但在这里,除了 LIMIT 1
之外没有任何过滤器。
关于mysql - 提取较大 mysql 查询的一部分以独立使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37356686/
我正在通过 PHP 将 .csv 中的两行插入到表中。 我还会跟踪任何错误,如果发生错误,我不会提交事务。插入表后,我检索结果行的 ID(全部在一个事务中提交),并且 csv 的第一行对应于第二个 I
一个应用程序托管一个具有三个接口(interface)的 Web 服务,用于三个单独且独立的操作,所有这些操作都在应用程序的不同组件中实现,彼此独立,例如在不同的包等中,所以他们对彼此了解不多,只共享
我希望在单击特定表格数据单元格时同时选中单选按钮和单选按钮单击事件。我已经使用以下方法实现了这一点: $(document).ready(function() { $("td").click(
JSFiddle:https://jsfiddle.net/oyp1zxaq/ 本质上,我只是想在较大的 div 中放置四个具有定义宽度的较小 div,但我希望它们在其中间隔开。 我想知道是否有一种方
我在一个布局中有两个 View 。我将分别称它们为 View A 和 View B。 ┌──────┐ │┌─┐┌─┐│ ││A││B││ │└─┘└─┘│ └──────┘ 父布局(包括View A
我是一名优秀的程序员,十分优秀!