我正在尝试在我的 Domain_ 查询中获取域而不是完整的电子邮件地址。在下面的语句中,我选择了 user_data。 Email_address
但这提供了 foo@bar.com 而不是 bar.com 这还不够:
INSERT INTO user_orders
(`User_ID`, `Order_Number`, `Customer_ID`, `Email_address`, `Domain_`)
SELECT
user_data.`User_ID`, order_data.`Order_Number`, user_data.`Customer_ID`,
user_data.`Email_address`, user_data.`Domain_`
FROM user_data
INNER JOIN order_data ON order_data.User_ID = user_data.User_ID;
我的理解是 SUBSTRING_INDEX(Email_address,'@',-1) 因为 Domain_ 可以工作,所以我尝试了:
INSERT INTO user_orders
(`User_ID`, `Order_Number`, `Customer_ID`, `Email_address`, `Domain_`)
SELECT
user_data.`User_ID`, order_data.`Order_Number`, user_data.`Customer_ID`, user_data.`Email_address`,
(SUBSTRING_INDEX(SUBSTR(user_data.`Email_address`, INSTR(user_data.`Email_address`, '@') + 1),'.',1)) as user_data.`Domain_`
FROM user_data
INNER JOIN order_data ON order_data.User_ID = user_data.User_ID;
但查询失败并提供语法错误。
为了更清楚地将其隔离,这就是我所做的不同:
(SUBSTRING_INDEX(SUBSTR(user_data.`Email_address`, INSTR(user_data.`Email_address`, '@') + 1),'.',1)) as user_data.`Domain_`
如果我遇到困难,任何帮助将不胜感激。
<块引用>错误:INSERT INTO user_orders(User_ID
, Order_Number
, Customer_ID
, Email_address
, Domain_
)
选择 user_data.User_ID
, order_data.Order_Number
, user_data.Customer_ID
, user_data.Email_address
, (SUBSTRING_INDEX(SUBSTR(user_data.Email_address
, INSTR(user_data. Email_address
, '@') + 1),'.',1)) 作为 user_data.Domain_
FROM user_data
内部连接 order_data on order_data.User_ID = user_data.User_ID;
/* SQL 错误 (1064): 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在 '.Domain_
FROM user_data 附近使用的正确语法
内部联接 order_data on order_data.User_ID = user...' 在第 2 行 */```