Как я могу сохранить Mysql Query в определенной строке
Я использую Smart Fox Server. Где я подключаю этот сервер к моей базе данных SQL.
Этот запрос правильно выполняется в командной строке My sql, но когда я пишу этот запрос на стороне сервера, получаю error.i знаю, что ошибка в% 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");
1 ответ
Я не совсем понимаю. Чем этот запрос отличается от этого...
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`???
";
(Это не ответ, но я хотел воспользоваться опциями форматирования)