FIND_IN_SET() 在 SQL Server 中等效 [英] FIND_IN_SET() equivalent in SQL Server

查看:45
本文介绍了FIND_IN_SET() 在 SQL Server 中等效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SELECT * FROM users WHERE uid IN (SELECT医生 FROM MainPage WHERE Valid=1)

<块引用>

usersuid INT
Mainpagedoctors text 值为 1,2,3,4,5

当我运行上面的查询时,它只生成了 1 行,即 uid = 1,但是我想要所有 5 行.所以在 MySQL 中我使用了这个查询:

SELECT *来自用户JOIN MainPage ON FIND_IN_SET(uid, 医生)哪里有效 = 1;

它奏效了.我正在尝试在 SQL Server 中为 FIND_IN_SET 找到等效项以达到相同的结果?

解决方案

这可能有用

SELECT *来自用户你存在的地方(选择 *从主页WHERE CONCAT(',',doctors,',') LIKE CONCAT('%,',u.uid,',%')AND 有效 = 1)

SELECT * FROM users WHERE uid IN (SELECT doctors FROM MainPage WHERE Valid=1)

users table uid INT
Mainpage table doctors text with value as 1,2,3,4,5

When I am running the above query, it is only resulting 1 row which is for uid = 1, however I wanted all the 5 rows. So in MySQL I used this query:

SELECT *
FROM users
JOIN MainPage ON FIND_IN_SET(uid, doctors)
WHERE Valid = 1;

It worked. I am trying to find an equivalent in SQL Server for FIND_IN_SET to achieve the same result ?

解决方案

This might work

SELECT *
FROM users u
WHERE EXISTS (
    SELECT *
    FROM MainPage
    WHERE CONCAT(',',doctors,',') LIKE CONCAT('%,',u.uid,',%')
        AND Valid = 1
)

这篇关于FIND_IN_SET() 在 SQL Server 中等效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆