我正在使用smart fox server.where我将此服务器连接到My sql数据库。
此查询在My sql命令行中正常运行但是当我在服务器端写入此查询时获取error.i知道错误在%emp_id%.Here 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");
答案 0 :(得分: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`???
";
(这不是答案,但我想利用格式化选项)