PHP에서이 오류가 발생합니다. PHP에서 mysql_query()로 전달하기 위해이 문자열을 포맷하는 올바른 방법은 무엇입니까?MySql 변수 및 PHP
SELECT count(*) FROM agents INTO @AgentCount;
SELECT user_agent_parsed, user_agent_original, COUNT(user_agent_parsed) AS thecount,
COUNT(*)/(@AgentCount) AS percentage
FROM agents
GROUP BY user_agent_parsed
ORDER BY thecount DESC LIMIT 50;
PHP에서, 여기에 내가 명령 행 세션을 통해 직접 MySQL의에 넣어 경우 정확한 쿼리가 잘 작동 할 것이라는 $ 쿼리
$query = "
SELECT count(*) FROM agents INTO @AgentCount;
SELECT user_agent_parsed, user_agent_original, COUNT(user_agent_parsed) AS thecount,
COUNT(*)/(@AgentCount) AS percentage
FROM agents
GROUP BY user_agent_parsed
ORDER BY thecount DESC LIMIT 50";
을 설정하는 방법입니다. mysql_query()에 두 개의 개별 php 호출을하고 첫 번째 결과를 저장해야합니까?
다음 오류가 발생합니다.
SQL 구문에 오류가 있습니다. mysql 서버 버전에 해당하는 매뉴얼을 확인하여 'user_agent_parsed, user_agent_original, COUNT (user_agent_parsed) count'(COUNT (user_agent_parsed) as the count) 근처의 라인 3에서 사용하십시오.
서브 선택을 사용하지 않고 대신 MySql 변수는 모든 백분율 계산에서 발생하는 count()를 피하는 것입니다. 엔진이이를 최적화 할 수는 있지만 가능할 수도 있습니다. 지금까지, 나는 그것을 확인할 수 없었다. 나는 또한 하위 선택이 거의 항상 비 최적이라고 들었다.
id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY agents index NULL user_agent_parsed 28 NULL 82900 Using temporary; Using filesort 2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away