我无法让下面的代码工作。我试图从查询中设置变量并在另一个中使用它两次。如果我将第一个查询复制到变量的位置,则查询运行正常。由于第一个查询将始终返回相同的结果,我宁愿不再运行两次。
public class User
{
public int UserID { get; set; }
public bool IsAdministrator { get; set; }
[StringLength(50, MinimumLength = 1)]
public string LastName { get; set; }
[StringLength(50, MinimumLength = 1, ErrorMessage = "First name cannot be longer than 50 characters.")]
[Column("FirstName")]
public string FirstMidName { get; set; }
public string FullName
{
get { return FirstMidName +" "+ LastName; }
}
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime EnrollmentDate { get; set; }
public int DepartmentID { get; set; }
[ForeignKey("DepartmentID")]
public virtual Department Department { get; set; }
public int DepotID { get; set; }
[ForeignKey("DepotID")]
public virtual Depot Depot { get; set; }
public virtual ICollection<Ticket> Tickets { get; set; }
}
user_id和target_user_id也是主键。
答案 0 :(得分:1)
这是SQL Server
中的有效语法,只要sub-query
返回一行。
SET @sid = (SELECT status_id
FROM user_relationship_status
WHERE status = 'LIKE');
在Mysql
你需要这样做
SELECT @sid:= status_id
FROM user_relationship_status
WHERE status = 'LIKE'
插入查询应该像
我无法让下面的代码工作。我正在尝试从查询中设置变量并在另一个中使用它两次。如果我将第一个查询复制到变量的位置,则查询运行正常。由于第一个查询将始终返回相同的结果,我宁愿不再运行两次。
SET @sid = (SELECT status_id
FROM user_relationship_status
WHERE status = 'LIKE');
INSERT INTO user_relationships (user_id, target_user_id, status_id)
VALUES (
17,
22,
@sid
)
ON DUPLICATE KEY UPDATE
status_id = @sid
答案 1 :(得分:0)
使用以下脚本设置@sid
SELECT status_id INTO @sid FROM user_relationship_status WHERE status =&#39; LIKE&#39;限制1;