-1

我正在使用 smart fox server.where 我将此服务器连接到 My sql 数据库。

此查询在 My sql 命令行中正确运行,但是当我在服务器端编写此查询时出现错误。我知道错误在 % emp_id% 中。这里 emp_id 是常量。我正在尝试这种方式,但仍然出现错误。

String sql="
SELECT emp_first_name
     , emp_last_name
     , msg_title
     , msg_body 
  FROM message_master 
  JOIN emp_master 
    ON emp_master.emp_id = message_master.empmsgsender_id 
   AND message_master.emp_id IN(SELECT emp_id 
                                  FROM message_master 
                                 WHERE emp_id LIKE %'"+emp_id+"'%)";

   @Override
public void handleClientRequest(User user, ISFSObject isfso) 
{
try
{
    trace("within request for message");
    String emp_id=isfso.getUtfString("uid");
    trace( "Employee_id:"+emp_id);

//    String sql="SELECT emp_first_name,emp_last_name,msg_title,msg_body from message_master inner join emp_master ON emp_master.emp_id=message_master.empmsgsender_id AND message_master.emp_id='"+emp_id+ "' LIMIT 10";
    String sql="SELECT emp_first_name,emp_last_name,msg_title,msg_body from message_master inner join emp_master ON emp_master.emp_id=message_master.empmsgsender_id AND message_master.emp_id IN(SELECT emp_id from message_master where emp_id LIKE %emp_id%)";
    trace("After sql query");
    sfsdb=getParentExtension().getParentZone().getDBManager();
    conn=sfsdb.getConnection();
    trace("connection established");
    ps=conn.prepareStatement(sql);
    rs=ps.executeQuery();

    trace("After resultset");
4

1 回答 1

0

我很困惑。该查询与此查询有何不同...

String sql="
SELECT emp_first_name
     , emp_last_name
     , msg_title
     , msg_body 
  FROM message_master m
  JOIN emp_master e
    ON e.emp_id = m.empmsgsender_id 
 WHERE m.empid LIKE '%emp_id%'; -- and why are you using `LIKE`???
 "; 

(这不是答案,但我想利用格式选项)

于 2014-02-03T12:04:10.943 回答