【问题标题】:MS SQL php query comma separated column?MS SQL php查询逗号分隔列?
【发布时间】:2015-11-29 13:43:16
【问题描述】:

我对 MS SQL 查询完全陌生,我拥有的三个表设置如下:

用户表的列 (userGroupLocID) 设置为 varchar 数据类型,该字段包含以逗号分隔的值,例如 (1,2)

Room_Location 表的一列 (user_loc_id) 设置为 INT 数据类型

Client_Room 表的列 (id) 设置为数据类型 INT

我有以下查询 $query = "SELECT * FROM client_room, room_location, users WHERE $useractiveid = (users.id) AND client_room.id = (room_location.user_loc_id)";

这会从 Room_Location 表中输出完整的位置列表,这可以正常工作,但我只想显示用户表中存在 id 的位置 (userGroupLocID) $query = "SELECT * FROM client_room, room_location, users WHERE $useractiveid = (users.id) AND client_room.id = (room_location.user_loc_id) AND cast(client_room.id as varchar(10)) IN (users.userGroupLocID)";

谁能告诉我哪里出错了。

【问题讨论】:

  • 它的查询有问题吗?还是它的查询执行问题?如果是执行查询,你是如何执行的?
  • 问题出在查询上,谢谢!
  • 请参阅上面修改后的问题以及我如何尝试执行它。
  • 您因为另一个数据库而更改为 ODBC?如果是这样(不是mysql)
  • 您的代码示例中没有odbc_connect,也没有错误检查

标签: php mysql odbc


【解决方案1】:

我最终设法解决了我自己的问题,这可能不是最好的答案,但这是它在 MS SQl 上工作的唯一方法。

<select name="event_room" id="event_room">
                        <option>Room Location</option>
                        <?php 

                            $query = "SELECT * FROM users WHERE theusername = '$userident'";

                            $result = odbc_exec($connect, $query);

                            while($row = odbc_fetch_array($result)){

                                $usegrids = explode(',', $userperenco);
                                foreach ($usegrids as $usegrid) {
                                    $querygroup = "SELECT * FROM room_location WHERE user_loc_id = '$usegrid'";
                                    $resultgroup = odbc_exec($connect, $querygroup);
                                    while($rowgroup = odbc_fetch_array($resultgroup)){
                                        echo "<option value=\"" . $rowgroup['location'] . "\">" . $rowgroup['location'] . "</option>\n";
                                    }
                                }
                            }
                        ?>
                    </select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    相关资源
    最近更新 更多